如何获取文件的制造商名称

时间:2017-05-22 05:20:43

标签: batch-file

我需要在Windows 10批处理文件中实现以下算法。

  • 遍历目录并搜索文件。
  • 找到每个文件,获取其制造商的名称。
  • 如果制造商的名称是例如" Microsoft",请删除该文件。

我已经使用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

现在,当我尝试将这两段代码一起用于实现上述算法(伪代码)时,问题就开始了。除非有其他方法可以做到这一点?

1 个答案:

答案 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文件。