我有一个程序ABC,它当前接收一个文件并将n个文件转储到一个文件夹中,该文件夹的名称与没有扩展名的文件名相同。
创建的文件数是任意的。我想获取所有这些输出文件并将它们移动到另一个目录。这意味着当我将10个文件传递给程序ABC时,我将输出全部放在一个目录中,而不是10个单独的目录。
我将使用嵌套的for循环来完成此任务。外部循环将发送每个参数由程序ABC处理,内部循环将每个和所有结果文件移动到我自己选择的文件夹中。
我已经完成了外部循环部分,但我不确定如何检索文件夹中的文件列表。
我首先尝试回应他们
for /D %%Y in (dir %%~nX) do echo %%Y )
其中%% ~nX是程序ABC中新创建的文件夹的名称,但它所做的只是回显“dir”和文件夹的名称而不是在尝试循环之前评估(dir %% ~nX)在它上面。
此外,dir将包括父目录和当前目录,如果我让它工作,我不想要。如何摆脱它们,是否可以在循环之前评估命令?
答案 0 :(得分:3)
如果您查看运行FOR /?
时获得的帮助,您会看到要么:
for /D %%Y in (%%~nX\*) do
或
for /F %%Y in ('dir /b %%~nX') do
答案 1 :(得分:1)
试试此链接 -
http://rosettacode.org/wiki/Walk_a_directory/Recursively#Batch_File
而是使用回复。
编辑:你走了
FOR /R <source-directory> %F IN (*.xml) DO COPY "%F" <destination-directory>
这将递归地将所有* .xml文件从source-directory复制到目标目录,并将目录结构展平。