如何使用bat文件将文件从子目录移动到一个文件夹

时间:2018-07-30 20:19:28

标签: batch-file file-moving

我正在尝试使用.bat文件进入一个文件夹,并拍摄其中及其子文件夹中的所有照片,并将它们全部放置到另一个目录中。我知道如何精确地复制文件夹,使用

复制时,所有子文件夹都保留在原位
@ECHO OFF
XCOPY E:\FromFolderNameX C:\toFolderNameY /m /y

但是我只希望所有照片最后都放在一个文件夹中,没有子文件夹。可以使用批处理文件吗?

1 个答案:

答案 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的更多信息。