在批处理文件中无法识别文件名中使用的通配符

时间:2014-10-07 08:42:04

标签: batch-file for-loop wildcard filepath

for /f "skip=1 tokens=* usebackq" %%u in ("\\%%a\C$\ProgramData\Symantec\Symantec Endpoint Protection\12.1.*\Data\Definitions\VirusDefs\definfo.dat) do (

我正在尝试读取文件definfo.dat的第二行,使用以下命令通过批处理文件,其中%%a是计算机名称。执行此操作时无法识别通配符。它会查找名为 12.1.* 的文件夹,而不是查找 12.1.1, 12.1.2, 12.1.3 的任意组合等。

我在这里做错了什么?由于路径也有空格,我无法排除引号。

1 个答案:

答案 0 :(得分:0)

只允许在路径的最后一个元素中使用通配符,因此,中间带有通配符的代码将失败。

您需要另一个for命令来搜索文件夹

....
for /d %%z in (
    "\\%%a\C$\ProgramData\Symantec\Symantec Endpoint Protection\12.1.*"
) for /f "skip=1 tokens=* usebackq" %%u in (
    "%%~z\Data\Definitions\VirusDefs\definfo.dat"
) do (
....