Command line 使用ROBOCOPY或批处理脚本从不同的子目录复制.doc文件

Command line 使用ROBOCOPY或批处理脚本从不同的子目录复制.doc文件,command-line,cmd,command-prompt,robocopy,Command Line,Cmd,Command Prompt,Robocopy,我目前有以下文件夹结构: C:\Quarter1\Folder100\Q1Review100.doc C:\Quarter1\Folder101\Q1Review101.doc ... C:\Quarter1\Folder120\Q1Review120.doc 除了没有.doc文件外,我还有另一个目录,其结构与此相同: C:\Quarter2\Folder100\ C:\Quarter2\Folder101\ … C:\Quarter2\Folder120\ 我的问题是,如何编写批处理

我目前有以下文件夹结构:

C:\Quarter1\Folder100\Q1Review100.doc
C:\Quarter1\Folder101\Q1Review101.doc 
  ...
C:\Quarter1\Folder120\Q1Review120.doc
除了没有.doc文件外,我还有另一个目录,其结构与此相同:

C:\Quarter2\Folder100\
C:\Quarter2\Folder101\
…
C:\Quarter2\Folder120\
我的问题是,如何编写批处理脚本或使用ROBOCOPY,以便从以下位置复制所有.doc文件:

C:\Quarter1\Folder100\*.doc
C:\Quarter1\Folder101\*.doc
…
C:\Quarter1\Folder120\*.doc
要删除目录,请执行以下操作:

C:\Quarter2\Folder100\
C:\Quarter2\Folder101\
…
C:\Quarter2\Folder120\
但是我想将
Q1
重命名为
Q2
,而不是将Q1Review100.doc作为名称,因此应该复制该文件并将其重命名为Q2Review100.doc


如果需要进一步澄清,请告诉我。

您可以发出两个命令:

  • 复制所有文件:
    robocopy C:\quarte1 C:\quarte2/S
  • 将所有文件名中的Q1替换为Q2:
    for/f“tokens=*delims=“%i in('dir/b/s“c:\quarte2\*.doc“')do Set LIST=%i&Set LIST|ren”%~fi”“%LIST:Q1=Q2%”
  • 注意:如果在批处理文件中写入,请将%i替换为%%i