【发布时间】:2024-01-24 01:41:01
【问题描述】:
我曾尝试制作将位于 D:\images(此处为随机命名的子文件夹)中的所有 *.tif 文件复制到 d:\all 的批处理脚本。
xcopy D:\Downloads\*.TIF D:\temp\ /s
有效,但它与所有文件夹树一起复制。我尝试使用其他键,但它不起作用。 感谢您的帮助!
【问题讨论】:
标签: windows batch-file copy xcopy
我曾尝试制作将位于 D:\images(此处为随机命名的子文件夹)中的所有 *.tif 文件复制到 d:\all 的批处理脚本。
xcopy D:\Downloads\*.TIF D:\temp\ /s
有效,但它与所有文件夹树一起复制。我尝试使用其他键,但它不起作用。 感谢您的帮助!
【问题讨论】:
标签: windows batch-file copy xcopy
FOR 是你的朋友。在/R 选项和%~nx 变量替换上阅读HELP FOR;然后试试这个非常简单的代码。
pushd d:\downloads
for /r %%a in (*.tif) do (
echo COPY "%%a" "d:\temp\%%~nxa"
)
popd
仔细观察结果,然后删除ECHO 命令。
您必须改进代码以应对错误、重复名称、边缘情况、带有保留字符的名称、竞争条件、宇宙事件...
【讨论】:
d:\downloads 替换为 %1 并将 d:\temp\%%~nxa 替换为 %2。然后你会有一个可重用的命令,我把我的 Dropbox\bin 放到 PATH 中,这样我就可以在我所有的电脑上使用它了。很棒的蝙蝠脚本,谢谢!
cosmic events ;)
使用 Windows 文件资源管理器搜索的文件,例如*.gif ,我在搜索窗口中获取文件,使用 Edit=>Select All ,复制然后粘贴到所需的文件夹。这将所有子目录中的所有 gif 文件复制到单个文件夹。 对于大量文件,它有时会挂起/没有响应,但其他情况下工作正常。
【讨论】:
pushd D:\Source
for /r %%a in (*.?*) do (
MOVE "%%a" "D:\Destination folder\%%~nxa"
)
popd
【讨论】:
您也可以使用 XXCOPY 免费软件。像 XCOPY 一样工作,但是当您使用 /SG 参数时,它会展平子目录。看看如何使用它here。
【讨论】: