Powershell WMIC 数据文件查询无效?

Powershell WMIC Datafile Invalid Query?

我搜索了又搜索,但无法弄清楚为什么会返回无效查询错误:

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

我也尝试过提升PS,认为这可能是由于程序文件文件夹的权限。我也试过区分大小写 path/filename。我试过双引号和单引号,也没有引号。我也试过用单打替换双打。我什至在不同的文件夹位置尝试过不同的文件(如 c:\temp);似乎每次我使用 datafile where name 时,我都会得到一个无效的查询,即使我离开了 get version...

这到底是怎么回事?

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

像这样:

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

然后returns:

版本 31.0.0.5310

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

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

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