【问题标题】:wildcard used in file name not recognized in batch file批处理文件中无法识别文件名中使用的通配符
【发布时间】:2014-10-07 08:42:04
【问题描述】:
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 等的任意组合。

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

【问题讨论】:

    标签: batch-file for-loop wildcard filepath


    【解决方案1】:

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

    您需要另一个 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 (
    ....
    

    【讨论】:

      猜你喜欢
      • 2013-09-20
      • 2011-05-15
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多