2017-03-17 175 views
0

我有一套程序需要通过批处理文件来安装,卸载等。 所以我的批处理文件containst此行为什么这个wmic命令不能在批处理文件中工作

wmic product where name="ABCcorp Tool" get version 

工作正常,但该工具

wmic product where name="XYZ® Tool" get version 

它只是打印

No Instance(s) Available. 

完美的作品,如果我运行通过命令行相同直接(管理员运行)

怀疑注册注册成为我改成了

wmic product where "Name like 'XYZ%'" get version 

同样的问题的罪魁祸首:直接运行在命令行而不是通过批处理文件。 我应该在这里做什么?

+1

打开命令提示符窗口并运行'chcp',根据__your__ Windows区域和语言设置,在__your__帐户的__your__机器上显示使用哪个代码页。您可以在Wikipedia上找到各种代码页,例如[OEM 437](https://en.wikipedia.org/wiki/Code_page_437)(美国,加拿大),[OEM 850](https://en.wikipedia)。 org/wiki/Code_page_850)(西欧国家),[Windows-1252](https://en.wikipedia.org/wiki/Windows_1252)(在北美,西欧的GUI应用程序中)。您的问题是由于在编写批处理代码时未使用正确的代码页导致的。 – Mofi

回答

0

这是比解决方案更多的解决方法。 我想出了如何正确地获取“名称”。基本上,它应该是

wmic product where "Name like 'XYZ%%'" get version 

里面的批处理文件becuase%是一个特殊的字符,需要转义。

所以我的问题已经解决了,但是如果有人知道如何用“®”符号来完成,它可能对其他人有用。

相关问题