尝试制作一个批处理文件,该文件将从 CD 复制特定文件类型并将其放入新文件夹中,并提示选择目标文件夹名称。我很难向许多老用户解释如何查找文件以及如何将文件传输到 USB 记忆棒,所以我希望得到一个双击即可解决的答案。
我尝试了几种不同的 xcopy,但据我所知它没有任何输出。
D 盘是 CD 驱动器,E 盘是 USB 驱动器。我在 CD 中搜索的文件隐藏在几个深文件夹中。
如果有更好的方法可以做到这一点,则不附加批处理文件。谢谢。
@echo off
set /p x=
xcopy "D:\" "E:\%x%\" .*pes /s
为了简化,尝试从 E 盘运行它,
xcopy E:\ *.pes /s
它确实复制了,但它复制了整个目录...并将所有文件转换为 .pes,而不是现在仅复制 .pes。
答案1
它应该像这样工作:
@echo off
set /p x=
xcopy "D:\*.pes" "E:\%x%\" /s
但是源的文件夹结构也将在目标中创建。
要复制一个文件夹中的所有文件,可以使用以下命令:
@echo off
set /p x=
for /r "D:\" %%i in (*.pes) do xcopy "%%~fi" "E:\%x%\"
编辑以澄清/研究:
FOR /R = 递归 FOR 循环(https://ss64.com/nt/for_r.html)
%%i = 每个文件的变量
(*.pes) = 文件夹/子文件夹中以 .pes 结尾的每个文件
这似乎没有必要:“%%~fi”
%%~fi = “将 %%i 扩展为完全限定路径名”(参见 CMD 中的 FOR /?)
它似乎也可以像这样工作:
for /r "D:\" %%i in (*.pes) do xcopy "%%i" "E:\%x%\"