批量编码用于循环创建具有不同名称的文件

时间:2016-04-15 07:09:25

标签: batch-file

我是批处理编码的新手,所以请放心。

请考虑以下代码:

FOR /L %%G IN (1,1,20) DO (break>"C:\New folder\%%G+1.txt")

我尝试使用上面的代码创建文本文件,但我得到1 + 1,2 + 1,3 + 1 ..依此类推。

有没有办法不触及参数,而是增加%%G+1中的参数?它不是输出为字符串,而是给出一个数字。

请指导我。感谢

更新:我在下面尝试了以下代码

:MakeTextFiles
setlocal enabledelayedexpansion
set "var=1"
FOR /L %%G IN (1,1,20) DO 
(       
    set /a "var=%var%+1" 
    break>"C:\New folder\!var!.txt"
)
EXIT /B

但它没有用。

2 个答案:

答案 0 :(得分:1)

你不需要在这里添加算术,只需更改你循环的设置:

FOR /L %%G IN (2,1,21) DO (break>"C:\New folder\%%G.txt")

如果你肯定想要算术:

setlocal enabledelayedexpansion
FOR /L %%G IN (1,1,20) DO (
set /a var=%%G+1
break>"C:\New folder\!var!.txt")

你需要看一下:

calculating the sum of two variables in a batch script

在这里 delayed expansion

答案 1 :(得分:1)

setlocal enabldelayedexpansion
FOR /L %%G IN (1,1,20) DO 
(
    set /a _new=%%G+1
    break>"C:\New folder\!_new!.txt"
)

请参阅有关delayedexpansion

的文章

您最近的更改有两个问题:

(必须与do位于同一物理行。

set /a var=!var!+1

set /a var=var+1

set /a var+=1

set /a访问var的运行时值,!var!var的运行时值,%var%是分析时间值var的值 - 遇到for时的值。