0

我正在尝试编写一个批处理文件,它将直接子目录中的所有 *.csv 文件附加到当前目录中的单个文本文件中。

从各种来源,我设法将这段代码拼凑在一起,该代码适用于当前目录中的文件,但不适用于子目录

for %%a in (*.csv) do (type %%a >> csvreport.txt)

如果有人可以帮助我解决这个问题,我将非常感激,因为我尝试了各种使用通配符的方法,但都没有成功。

4

3 回答 3

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)
于 2009-10-13T21:08:46.967 回答
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”语句,使其仅适用于直接子目录,而不适用于它们的子目录。

于 2009-10-13T20:43:19.110 回答
0
for /R .\ %%a in (*.csv) do (type %%a >> csvreport.txt)

/R 表示递归,后面的参数是要启动的文件夹(.\ 是当前目录)。

如果您运行,您可以找到更多信息for /?

于 2009-10-13T20:24:09.513 回答