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