如何使用bat文件将文件从子目录移动到一个文件夹
how to use bat file to move files from subdirectories to one folder
我正在尝试使用 .bat 文件进入一个文件夹,拍摄其中及其子文件夹中的所有照片,然后将它们全部放入另一个目录中。我知道如何准确复制文件夹,使用
复制时所有子文件夹都保留在原位
@ECHO OFF
XCOPY E:\FromFolderNameX C:\toFolderNameY /m /y
但我只希望所有的照片最终都在一个文件夹中,没有子文件夹。这可以用批处理文件完成吗?
我假设您想要 复制(而不是移动)从 移动 开始的子树中的照片=12=]进入目录C:\toFolderNameY
.
我假设 "photos" 你的意思是 .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 /?
以阅读有关 how for /r
works 的更多信息。
我正在尝试使用 .bat 文件进入一个文件夹,拍摄其中及其子文件夹中的所有照片,然后将它们全部放入另一个目录中。我知道如何准确复制文件夹,使用
复制时所有子文件夹都保留在原位@ECHO OFF
XCOPY E:\FromFolderNameX C:\toFolderNameY /m /y
但我只希望所有的照片最终都在一个文件夹中,没有子文件夹。这可以用批处理文件完成吗?
我假设您想要 复制(而不是移动)从 移动 开始的子树中的照片=12=]进入目录
C:\toFolderNameY
.我假设 "photos" 你的意思是
.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 /?
以阅读有关 how for /r
works 的更多信息。