我正在尝试编写一个批处理文件,它将直接子目录中的所有 *.csv 文件附加到当前目录中的单个文本文件中。
从各种来源,我设法将这段代码拼凑在一起,该代码适用于当前目录中的文件,但不适用于子目录
for %%a in (*.csv) do (type %%a >> csvreport.txt)
如果有人可以帮助我解决这个问题,我将非常感激,因为我尝试了各种使用通配符的方法,但都没有成功。
我正在尝试编写一个批处理文件,它将直接子目录中的所有 *.csv 文件附加到当前目录中的单个文本文件中。
从各种来源,我设法将这段代码拼凑在一起,该代码适用于当前目录中的文件,但不适用于子目录
for %%a in (*.csv) do (type %%a >> csvreport.txt)
如果有人可以帮助我解决这个问题,我将非常感激,因为我尝试了各种使用通配符的方法,但都没有成功。
还有一个选择...
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)
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”语句,使其仅适用于直接子目录,而不适用于它们的子目录。
for /R .\ %%a in (*.csv) do (type %%a >> csvreport.txt)
/R 表示递归,后面的参数是要启动的文件夹(.\ 是当前目录)。
如果您运行,您可以找到更多信息for /?