Windows 在子文件夹中搜索请求的文件并复制到目标

Windows 在子文件夹中搜索请求的文件并复制到目标,windows,batch-file,Windows,Batch File,我正在尝试将文件_list.txt中列出的文件从源位置复制到目标文件夹,源文件夹有子文件夹。我的批处理应该能够搜索源子文件夹中的文件并复制到目标文件夹。复制所有扩展名为.exe的文件时也是如此。我的代码有什么问题。我想,我错过了搜索子文件夹数据。不知道命令是什么。请帮忙 @Echo关闭 SETLOCAL ENABLEDELAYEDEXPANSION @颜色0a cls 设置“dest=D:\destination” 设置/p源=选择源路径: 对于(%source%/*.exe)中的/R%%f,请

我正在尝试将文件_list.txt中列出的文件从源位置复制到目标文件夹,源文件夹有子文件夹。我的批处理应该能够搜索源子文件夹中的文件并复制到目标文件夹。复制所有扩展名为.exe的文件时也是如此。我的代码有什么问题。我想,我错过了搜索子文件夹数据。不知道命令是什么。请帮忙

@Echo关闭
SETLOCAL ENABLEDELAYEDEXPANSION
@颜色0a
cls
设置“dest=D:\destination”
设置/p源=选择源路径:
对于(%source%/*.exe)中的/R%%f,请复制%%f“%dest%”
回显复制请求的文件
对于(文件\u list.txt)中的/f%%f,请执行以下操作(
对于('dir/S/B/A:-D”%source%/%f“')中的/f“tokens=*”%%f,请执行以下操作(
复制“%%F”“%dest%\%USERNAME%”
)
)
暂停
端部

我看不出您发布的代码有任何明显的错误,尽管可能会出现错误。您没有提供有关当前目录、文本文件内容、脚本调用方式或任何调试信息的足够信息

以下版本的代码要求将文件列表文本文件放入第五行的变量定义中。我假设批处理文件与文件列表位于同一位置,因此使用了
%~dp0
。如果它在当前目录中,则替换为
%CD%\
,如果两者都不在,则替换为完全限定的绝对路径

接下来,我使用一些验证来尝试确保源、目标和用户输入存在。然后,输入位置将成为当前目录

然后,在curent目录返回到其原始位置之前,将运行提供的命令

@Echo关闭
SetLocal EnableExtensions DisableDelayedExpansion
颜色0A
设置“listdir=%~dp0filelist.txt”
设置“dest=D:\destination”
如果不存在“%listdir%”转到:EOF
如果不存在“%dest%\”转到:EOF
:问
ClS
设置“源=”
设置/P“源=选择源路径:”
如果未定义源,则转到询问
PushD“%source:=%”2>NUL | |转到Ask
对于(*.exe)中的/R%%G,请复制/Y“%%G”“%dest%”
回显复制请求的文件
对于/F“UseBackQ EOL=?”?Delims=“%%G In”(“%listdir%”
)为/F“Delims=“%%H In('Dir“%%~nxG”/S/B/A:-d2^>NUL”执行
)是否复制/Y“%%H”“%dest%\%UserName%”
流行音乐
暂停

请随时尝试该代码,如果仍然无法按预期工作,请提供一些适当的调试信息。

谢谢。它正在按预期工作。@JayaSimhaA,如果解决了您的问题,请将答案标记为已接受。您可以阅读更多关于如何执行该操作的信息@JayaSimhaA,我注意到您已以登录此网站的身份返回t尚未对上述评论作出回应。请阅读?以了解在这种情况下您可以选择哪些选项,因为没有可接受答案的问题不会被本网站视为已回答。