递归搜索文件名并在MS DOS中复制

时间:2013-09-04 00:22:10

标签: recursion batch-file command-prompt dos

我有一个文本文件,其中包含由换行符分隔的文件名和一个包含许多子文件夹的文件夹,其中包含与文本文件中的名称匹配的文件。

我想从文本文件中选择文件名,可以使用for循环来完成;并递归搜索文件夹中的文件名,如果找到该文件,则将其复制到其他位置。

任何人都可以了解它吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

@echo off
for /f "usebackq delims=" %%a in ("file names.txt") do (
   for /f "delims=" %%b in (' dir "c:\folder\%%a" /b /s /a-d ') do (
      copy "%%b" "c:\new folder"
   )
)

答案 1 :(得分:0)

非常简单(尽管您需要更具体一点,因此您可以调整代码以适应您的情况。

基本代码:

@echo off
for /f "usebackq tokens=*" %%a in ("file names.txt") do (
forfiles /p "C:\users\...[path to main file]" /s /m "%%a" /c "cmd /c copy @path "C:\users\...[target path]""

不确定上述双引号是否会填满,如果有,我们可以替换为callenableextensions

告诉我这是否有效(因为它只适用于Win7)。因为还有很多其他方法可以做到。

莫纳