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

Batch file 批处理文件中无法识别文件名中使用的通配符,batch-file,for-loop,wildcard,filepath,Batch File,For Loop,Wildcard,Filepath,我正试图通过批处理文件读取文件definfo.dat的第二行,其中%%a是计算机名。执行此操作时,无法识别通配符。它查找名为12.1.*的文件夹,而不是查找12.1.1、12.1.2、12.1.3等的任意组合 我做错了什么?因为路径也有一个空格,所以我无法排除引号 只允许在路径的最后一个元素中使用通配符,因此,中间带有通配符的代码将失败 您需要另一个for命令来搜索文件夹 for /f "skip=1 tokens=* usebackq" %%u in ("\\%%a\C$\ProgramDat

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


我做错了什么?因为路径也有一个空格,所以我无法排除引号

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

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

for /f "skip=1 tokens=* usebackq" %%u in ("\\%%a\C$\ProgramData\Symantec\Symantec Endpoint Protection\12.1.*\Data\Definitions\VirusDefs\definfo.dat) do (
....
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 (
....