【问题标题】:Move Multiple Files from Subfolders to Single Folder using Windows batch script使用 Windows 批处理脚本将多个文件从子文件夹移动到单个文件夹
【发布时间】:2018-09-07 07:22:17
【问题描述】:

我要求文件存在于文件夹和子文件夹中。子文件夹是使用当前日期和时间动态创建的。所有文件都应移至一个目标文件夹,不包含子文件夹。

文件夹 A:

1.txt
2.txt
Folder 20180907-1240-008
         3.txt
         4.txt
Folder 20180907-1128-001
         5.txt
         6.txt
Folder 20180906-0040-010
         7.txt
         8.txt

目标文件夹应如下所示

文件夹 B:

   1.txt
   2.txt
   3.txt
   4.txt
   5.txt
   6.txt
   7.txt
   8.txt

以下命令在命令提示符下工作

for /r %d in (*) do copy "%d" "F:\Tickets\Movement\390558-Harmony-LCOPYREC\B

我的批处理脚本如下所示

@echo off
cd /d "A"
for /r %%d in (*) do copy "%d" "F:\Tickets\B"

在批处理脚本中执行时出现如下错误

\Tickets\B\*
The system cannot find the file specified.
        0 file(s) copied.

如何使脚本正常工作

【问题讨论】:

    标签: batch-file move


    【解决方案1】:

    几乎正确,无需CD,只需在/r 之后指定文件夹的父路径,同时确保双引号正确,并且最好在要复制到的路径末尾添加反斜杠:

    for /r "C:\path to folderA" %%d in (*) do copy "%%d" "F:\Tickets\Movement\390558-Harmony-LCOPYREC\B\"
    

    如果您不想复制所有文件而只想复制.txt,只需将您的条件更改为(*.txt)

    for /r "C:\path to folderA" %%d in (*.txt) do copy "%%d" "F:\Tickets\Movement\390558-Harmony-LCOPYREC\B\"
    

    另外,不确定您真正想要哪条路径作为目的地,但您可以这样做:

    @echo off
    set "dest=F:\Tickets\B\"
    set "source=C:\some dir\A"
    for /r "%source%" %%d in (*) do copy "%%d" "%dest%"
    

    将上面的代码复制粘贴到批处理文件中。

    【讨论】:

      【解决方案2】:

      我在 cmd 中使用以下命令将音乐文件夹中的所有 m4a 文件及其所有子文件夹复制到另一个文件夹 my-music 中。不要忘记目标文件夹路径后的“\”。

      for /r "c:\Users\A\Desktop\music" %x in (*.m4a) do copy "%x" "c:\Users\A\Desktop\my-music\"
      

      【讨论】:

        【解决方案3】:

        如果您想从 cmd 执行此操作,请将父文件夹路径指定为 after/n,例如 for /r "C:\parentFolderPath\" %d in (*) do copy "%d" "D:\destinationFolderPath\",不要忘记在路径末尾添加反斜杠。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-17
          • 2015-09-28
          相关资源
          最近更新 更多