我需要在Windows 10批处理文件中实现以下算法。
我已经使用FOR循环和WMIC DATAFILE进行了一些尝试但没有成功;我无法将制造商的名称变成变量进行比较。
我使用以下代码遍历所有文件(和目录):
pushd C:\<path>\Temp
for /f "tokens=*" %%F in ('dir /a /b') do (<something_with_%%F>)
popd
然后,我使用以下代码获取文件的制造商名称:
wmic datafile where name="C:\\<path>\\Temp\\<file_name>.<ext>" get manufacturer
前面的代码将输出(如果与&#34; echo&#34;命令一起使用)以下内容(如果目标文件属于Microsoft):
Manufacturer
Microsoft
现在,当我尝试将这两段代码一起用于实现上述算法(伪代码)时,问题就开始了。除非有其他方法可以做到这一点?
答案 0 :(得分:0)
没有必要将这两个代码拼凑在一起,WMIC
命令中有功能性。
例如:
For /F "Skip=1 Delims=" %%A In ('
"WMIC DataFile Where (Drive='C:' And Path='\\<path>\\Temp\\' And Not Manufacturer Is Null) Get FileName, Manufacturer, Version"
') Do For /F "Delims=" %%B In ("%%A") Do Echo(%%B
您显然需要将\\<path>\\Temp\\
替换为您的真实路径(必须以\\开头和结尾)。
您甚至可以通过将And Extension='exe'
添加到Where
块来仅定位exe文件。