我是批处理编码的新手,所以请放心。
请考虑以下代码:
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
但它没有用。
答案 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")
你需要看一下:
答案 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
时的值。