我需要使用Windows命令提示符将n个文件从源目录复制到目标目录,文件名位于FilePattern.txt中,如下所示,其中包含类似的名称(每行一个文件名模式)
_12234_
_23456_
_1234_
源目录中的文件名
temph_12234_3456_fdss.pdf
abcdg_23456_456y_hello.pdf
yixsw_1234_56_adf.pdf
antoherfile_123_45_ghf.pdf
以下文件应复制到“目标文件夹”中
temph_12234_3456_fdss.pdf
abcdg_23456_456y_hello.pdf
yixsw_1234_56_adf.pdf
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要在Windows命令提示符下完成这个任务,你可以编写一个批处理脚本,结合使用for /F
循环读取文件名模式,然后用xcopy
或robocopy
命令来复制匹配的文件。下面是一个简单的示例脚本:
创建批处理脚本:首先,在源目录旁边创建一个批处理文件(例如copy_files.bat
),并用文本编辑器打开它。
编写脚本内容:在批处理文件中输入以下命令:
@echo off
setlocal enabledelayedexpansion
REM 设置源目录和目标目录
set "sourceDir=源目录的路径"
set "targetDir=目标目录的路径"
set "filePatternList=FilePattern.txt"
REM 读取文件名模式并复制文件
for /F "tokens=*" %%A in (%filePatternList%) do (
echo Looking for files matching %%A in %sourceDir%
for /R "%sourceDir%" %%F in (*%%A*) do (
echo Copying "%%F" to "%targetDir%"
xcopy "%%F" "%targetDir%" /Y
)
)
echo Done.
endlocal
请将源目录的路径
和目标目录的路径
替换为实际的目录路径。
cd %USERPROFILE%\Desktop
来切换到桌面目录,然后输入copy_files.bat
来执行脚本。这个脚本会遍历FilePattern.txt
中的每一行作为文件名模式,查找源目录及其子目录下所有匹配该模式的文件,并将其复制到指定的目标目录中。/Y
参数用于在复制时覆盖现有文件而不提示确认。