批量复制并重命名单个文件

时间:2017-01-07 07:25:29

标签: windows batch-file cmd

@echo off
set arg1=%%1
set arg2=%%2
shift
shift
for /L %%i IN (1,1,9) do copy "%arg1%" "%arg2%00%%i.xlsm"
for /L %%i IN (10,1,25) do copy "%arg1%" "%arg2%0%%i.xlsm"

我在尝试运行此批处理命令时遇到问题。我是批处理文件的新手,但我的最终目标是:

duplicate "foo.txt" "\Bar\banana"

我在“\ Bar”中找到了25份副本,命名如下:

banana001.xlsm
banana002.xlsm

有人有想法吗?

1 个答案:

答案 0 :(得分:3)

set arg1=%%1
set arg2=%%2

应该是

set arg1=%~1
set arg2=%~2

或者最好

set "arg1=%~1"
set "arg2=%~2"

%转义%因此%%2会将“%2”(字面意思)放入arg2

%n引用参数 n 的内容,其中n = 0到9

%仅在引用metavariable i

时才需要加倍

~删除参数的封闭引号(如果存在)。

引用的格式确保set行上的杂散尾随空格不包含在变量的值中。