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

Recursion 在MS DOS中递归搜索文件名并复制,recursion,batch-file,command-prompt,dos,Recursion,Batch File,Command Prompt,Dos,我有一个文本文件,其中包含由换行符分隔的文件名,还有一个包含多个子文件夹的文件夹,其中包含与文本文件中的名称匹配的文件 我想从文本文件中选择文件名,可以使用for循环;并递归搜索文件夹中的文件名,如果找到该文件,则将其复制到其他位置 谁能解释一下吗 谢谢,非常简单(不过您需要更具体一点,以便调整代码以适应您的情况) 基本代码: 不确定上面的双引号是否会塞满,如果塞满了,我们可以用调用和启用扩展替换 告诉我这是否不起作用(因为它只在Win7上起作用),因为还有很多其他的方法 Mona谢谢@foxi

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

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

谁能解释一下吗

谢谢,

非常简单(不过您需要更具体一点,以便调整代码以适应您的情况)

基本代码: 不确定上面的双引号是否会塞满,如果塞满了,我们可以用
调用
启用扩展
替换

告诉我这是否不起作用(因为它只在Win7上起作用),因为还有很多其他的方法


Mona

谢谢@foxidirve,我刚刚发现提供给我的filenames.txt中的文件名没有扩展名。它们都是带有.jpg的图片。我如何将.jpg附加到文件名中。命令当前显示为“file not found”。一切正常。正常运行了
@echo for/f“usebackq delims=“%%a in”(“e:\diff.txt”)吗(对于/f“delims=“%%b in('dir“e:\photos\%%a.jpg”/b/s/a-d”)执行(复制“%%b”e:\new folder”)
@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]""
@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"
   )
)