我正在尝试使用.bat文件进入一个文件夹,并拍摄其中及其子文件夹中的所有照片,并将它们全部放置到另一个目录中。我知道如何精确地复制文件夹,使用
复制时,所有子文件夹都保留在原位@ECHO OFF
XCOPY E:\FromFolderNameX C:\toFolderNameY /m /y
但是我只希望所有照片最后都放在一个文件夹中,没有子文件夹。可以使用批处理文件吗?
答案 0 :(得分:2)
我假设您要复制(而不是移动)来自子树的照片,这些子树从E:\FromFolderNameX
开始进入目录{{1 }}。
我假设“照片”是指C:\toFolderNameY
个文件。
单行交互式命令是
.jpg
如果要复制所有文件而不是JPG文件,只需将for /r E:\FromFolderNameX %p in (*.jpg) do copy /y "%~p" C:\ToFolderNameY
替换为*.jpg
。
如果您要使用一个批处理文件而不是一个交互式班轮,则批处理文件的核心将是
*
({for /r "%~1" %%p in (*.jpg) do copy "%%~p" "%~2"
是第一个位置参数=要从中复制文件的子树的顶部。%1
是第二个位置参数=目标目录。)
在生产中,批处理文件可能会检查目录%2
和%1
是否存在并且确实是目录;并且可能应该接受一个可选的第三个参数,该参数给出要复制的文件的模式。
输入%2
以了解有关how for /r
works的更多信息。