我正在尝试编写一个批处理文件,它会将直接子目录中的所有* .csv文件附加到当前目录中的单个文本文件中。
从各种来源我已经设法将这段代码拼凑在一起,该代码适用于当前目录中的文件但不适用于子目录
for %%a in (*.csv) do (type %%a >> csvreport.txt)
如果有人可以帮助我,我会非常感激,因为我尝试了各种通配符方法,但没有成功。
答案 0 :(得分:2)
另一种选择......
for /f usebackq %%a in (`dir /s /b *.csv`) do (type %%a >> csvreport.txt)
编辑:更多地阅读您的详细信息...您只想要直接目录,您可以这样做:
for /f usebackq %%a in (`dir /b /ad`) do for %%b in ("%%a"\*.csv) do (type "%%b" >> csvreport.txt)
答案 1 :(得分:0)
for /R .\ %%a in (*.csv) do (type %%a >> csvreport.txt)
/ R表示 recursive ,之后的参数是要启动的文件夹(。\是当前目录)。
如果您运行for /?
答案 2 :(得分:0)
dir /ad /b > dirs.txt
for /f "tokens=1*" %%i in (dirs.txt) do cd %%i & for %%b in (*.csv) do (type %%b >> c:\csvreport.txt) & cd ..
使用/ R标志将遍历所有子目录树。您可以将'for'语句嵌套到仅与直接子目录一起使用,而不是它们的子目录。