Powershell WMIC数据文件无效查询?

时间:2016-07-28 16:13:02

标签: powershell where-clause wmic

我已搜索并搜索过,但无法弄清楚为何返回无效查询错误:

wmic datafile where name='c:\\program files (x86)\\Mozilla Firefox\\Firefox.exe' get version

我也尝试使用提升的PS,认为这可能是由于程序文件文件夹的权限所致。我也尝试了区分大小写的路径/文件名。我试过双引号和单引号,也没有引号。我也尝试用单打替换双人赛。我甚至尝试过不同文件夹位置的不同文件(如c:\ temp);似乎每次我使用datafile的地方名称,我得到一个无效的查询,即使我离开了获取版本......

世界上到底发生了什么?

2 个答案:

答案 0 :(得分:4)

完全找到了答案。整个名称=' path \ filename.exe'需要引用...出于某种未知原因。

像这样:

wmic datafile where "name='c:\\program files (x86)\\Mozilla Firefox\\Firefox.exe'" get version

然后返回:

版 31.0.0.5310

这几乎正是我所需要的......现在我只需找到一种方法去除"版本"返回值的一部分。

答案 1 :(得分:1)

使用PowerShell的Get-WmiObject(别名gwmi)原生方法:

$f = gwmi cim_datafile -Filter {Name='c:\\program files (x86)\\Mozilla firefox\\firefox.exe'}
$f.Version