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



我正试图使用.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如何工作的更多信息。

相关内容

最新更新