FOR命令无法工作(仅在没有递归键的情况下使用)

时间:2016-10-22 16:39:53

标签: windows batch-file cmd

我试图弄清楚为什么FOR命令无法按预期工作。

以下是我的文件和文件夹的结构:

python <options> <filename> <args>

任务是处理foo.txt和bar.txt,同时避免处理aaa.txt和bbb.txt。

以下是我试过的三种方式。

第一种方式。这是有效的,但由于它需要Test | |------ foo.txt |------ bar.txt | |------ Exclude (here placed files that should not be processed) | |------ aaa.txt |------ bbb.txt (递归)密钥,因此无法满足我的需求。

/r

第二种方式。这就是我想要做的。它不起作用。 Insted,它给了我错误:“C:\ Test”此时出乎意料

for /r "C:\Test" %f in (*.txt) do type %f

第三种方式。它工作,目前我用它作为解决方法,但我仍然想知道为什么第二种方法失败。

for "C:\Test" %f in (*.txt) do type %f

1 个答案:

答案 0 :(得分:2)

阅读for /?帮助表明,如果没有/r开关,基本for命令的语法为

for %var in (set) do ...

也就是说,您不能包含您正在执行此操作的文件夹。

由于您需要处理c:\Test内的文件,那么您的设置就是该文件夹中的文件,所以

for %a in ("c:\Test\*.txt") do type "%a"

note :请记住,在批处理文件中,for可替换参数中的百分号需要加倍

for %%a in ("c:\Test\*.txt") do type "%%a"