我有一个批处理文件,它包含以下代码:
@echo off
color 0e
:initialize
set filemaker=1
echo How many files?
echo.
set /p uservar=
echo Creating...
for /l %%x in (1, 1, %uservar%) do echo. 2>%CD%\%filemaker%.txt & set /a filemaker=%filemaker%+1 & timeout /t 1 /nobreak >nul
echo %filemaker%
pause
每次执行它时,生成的文件(无论%uservar%的值如何)总是名称2,并且总是有一个文件!我想要多个不同的名称,例如,文件1是名称1,文件2是名称2,依此类推。
感谢任何帮助!
答案 0 :(得分:1)
您需要延迟扩展
@echo off
color 0e
:initialize
set filemaker=1
echo How many files?
echo.
set /p uservar=
echo Creating...
SetLocal EnableDelayedExpansion
for /l %%x in (1, 1, %uservar%) do (
echo. 2>%CD%\!filemaker!.txt
set /a filemaker=filemaker+1
timeout /t 1 /nobreak >nul
)
echo %filemaker%
pause
了解更多信息,请查看以下链接:
http://www.robvanderwoude.com/variableexpansion.php
http://ss64.com/nt/delayedexpansion.html
http://blogs.msdn.com/b/oldnewthing/archive/2006/08/23/714650.aspx