我曾尝试制作批处理脚本,将位于D:\ images(此处随机命名的子文件夹)中的所有* .tif文件复制到d:\ all。
xcopy D:\Downloads\*.TIF D:\temp\ /s
有效,但它会复制所有文件夹树。我试图使用其他键,但它不起作用。 谢谢你的帮助!
答案 0 :(得分:37)
FOR
是你的朋友。阅读HELP FOR
选项和/R
变量替换上的%~nx
;然后尝试这个非常简单的代码。
pushd d:\downloads
for /r %%a in (*.tif) do (
echo COPY "%%a" "d:\temp\%%~nxa"
)
popd
仔细观察结果,然后删除ECHO
命令。
您必须优化代码以应对错误,重复名称,边缘情况,带保留字符的名称,竞争条件,宇宙事件......
答案 1 :(得分:5)
使用Windows文件浏览器搜索文件,例如* .gif,我在搜索窗口中找到文件,使用Edit =>选择全部,复制然后粘贴到所需的文件夹。这会将所有子目录中的所有gif文件复制到单个文件夹中。 对于大量文件,它有时会挂起/没有响应,但是否则可以正常工作。
答案 2 :(得分:2)
pushd D:\Source
for /r %%a in (*.?*) do (
MOVE "%%a" "D:\Destination folder\%%~nxa"
)
popd
答案 3 :(得分:1)
您也可以使用XXCOPY免费软件。像XCOPY一样工作,但是当你使用/ SG参数时,它会使子目录变平。了解如何使用它here。