2014-10-07 161 views
0
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等。在批处理文件

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

回答

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 (
....