有人可以解释这个CMD批处理文件吗?

时间:2012-07-25 20:03:33

标签: batch-file cmd

set SourceSCMPasswd=abc
set HATCONTESTING=yes 


for /f %%a in ('dir /AD /b')  do VssConverter.exe analyze %%a\settings.xml & move VSSAnalysisReport.xml %%a & move usermap.xml %%a

我知道它执行以下命令:     1)在%% a \ settings.xml上运行VssConverter.exe分析     2)将VSSAnalysisReport.xml移动到%% a     3)将usermap.xml移动到%% a

问题是,当目录中的文件夹名称中有空格时,例如AMEX Mailer,变量%% a仅包含AMEX但不包括第二部分。我如何使它包括整个名称?

2 个答案:

答案 0 :(得分:1)

FOR / F的默认令牌分隔符为<tab><space>。您希望将整个字符串保留为单个标记,因此您不需要分隔符(“DELIMS =”)默认的EOL选项为;。以;开头的任何行都将被忽略。虽然不太可能,但文件名可能以;开头。您希望将EOL设置为某些不能出现在名称中的字符。好的候选人是:*?

for /f "eol=: delims=" %%A in ...

答案 1 :(得分:0)

试试这个:

for /f "delims=" %%a in ...