Batch file 多次复制文件夹及其内容,然后重命名它们

Batch file 多次复制文件夹及其内容,然后重命名它们,batch-file,copy,directory,rename,Batch File,Copy,Directory,Rename,我正在寻找一个适用于Windows7的简单批处理脚本,用于从一个目标复制文件夹及其内容,并使用增量名称将其粘贴到另一个目标x倍 例如: 给定一个文件夹C:\folder。我想用不同的名称将其复制到以下文件夹:C:\Destination 7次,因此结果如下(在C:\Destination中): 副本1 副本2 副本3 副本7 提前谢谢 for /l %%A in (1,1,7) do @xcopy "C:\Folder" "C:\Destination\Copy%%A" /i 有关所有选项

我正在寻找一个适用于Windows7的简单批处理脚本,用于从一个目标复制文件夹及其内容,并使用增量名称将其粘贴到另一个目标x倍

例如:

给定一个文件夹C:\folder。我想用不同的名称将其复制到以下文件夹:C:\Destination 7次,因此结果如下(在C:\Destination中):

副本1

副本2

副本3

副本7

提前谢谢

for /l %%A in (1,1,7) do @xcopy "C:\Folder" "C:\Destination\Copy%%A" /i
有关所有选项和帮助,请参见和


要在命令行上运行此操作,请确保使用%A而不是%%A

使用%变量从命令提示符执行。使用%%variable在批处理文件中执行for命令。变量区分大小写,必须用alpha值表示,如%A、%B或%C

这就是您需要的:


为了更好地衡量,我建议您的答案解释%%A和%A之间的区别。像我这样的人会抓住您的代码行,无法从命令行运行它。我知道这个问题的答案在您链接的文档中,但为什么不自己完成答案呢?@Ickster添加了
%
符号的解释。@DavidRuhmann正是我所需要的,但如何调整它以添加前导零,如
001
@echo off
set source=c:\temp\test\1
set dest_path=c:\temp\test\2\
pushd %dest_path%
setlocal enableDelayedExpansion
set "dest_folder_name=Backup"
set "n=0"
for /f "delims=" %%F in 
(
   '2^>nul dir /b /ad "%dest_folder_name%*."^|findstr /xri "%dest_folder_name%[0-9]*"'
) 
do (
  set "name=%%F"
  set "name=!name:*%dest_folder_name%=!"
  if !name! gtr !n! set "n=!name!"
)
set /a n+=1
set final_destination="%dest_path%%dest_folder_name%%n%"
md %final_destination%
robocopy %source% %final_destination% /E /R:3 /W:10 /FFT /NP /NDL
popd
@echo on