我试图弄清楚为什么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
答案 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"