我正在尝试编写一个脚本,该脚本将使用不同的参数编辑输入文件并运行使用该输入文件的程序。我想做200多次跑步。我编写了一个成功运行的代码,但是当我尝试将相同的代码放在FOR循环中时,它不起作用。
这是一次运行良好的迭代代码
@echo
set "file=Current.hot"
set /a isoLine#ToSearch=67
set /a sourceLine#ToSearch=68
set sourceList[0]=SourceTerm = 300
set isoList[0]=SourceTermName = a
set fileList[0]=a
set sourceList[1]=SourceTerm = 30
set isoList[1]=SourceTermName = ab
set fileList[1]=ab
set sourceList[2]=SourceTerm = 3
set isoList[2]=SourceTermName = ac
set fileList[2]=ac
set sourceList[3]=SourceTerm = .3
set isoList[3]=SourceTermName = ad
set fileList[3]=ad
(FOR /f "tokens=1*delims=:" %%a IN ('findstr /n "^" "%file%"') DO (
SETLOCAL ENABLEDELAYEDEXPANSION
SET "Line=%%b"
IF %%a equ %isoLine#ToSearch% SET "Line=!isoList[3]!"
IF %%a equ %sourceLine#ToSearch% SET "Line=!sourceList[3]!"
ECHO !Line!
ENDLOCAL
))>"%file%.new"
TYPE "%file%.new"
MOVE "%file%.new" "%file%"
setlocal enabledelayedexpansion
cd C:\Program Files (x86)\HotSpot 3.0.3
start Hotspot303.exe
timeout /t 4
ren Current.out !fileList[3]!.txt
现在这里是我尝试将其变成循环的相同代码。
@echo off
set "file=Current.hot"
set /a isoLine#ToSearch=67
set /a sourceLine#ToSearch=68
set sourceList[0]=SourceTerm = 300
set isoList[0]=SourceTermName = a
set fileList[0]=a
set sourceList[1]=SourceTerm = 30
set isoList[1]=SourceTermName = ab
set fileList[1]=ab
set sourceList[2]=SourceTerm = 3
set isoList[2]=SourceTermName = ac
set fileList[2]=ac
set sourceList[3]=SourceTerm = .3
set isoList[3]=SourceTermName = ad
set fileList[3]=ad
(for /l %%k in (0,1,3 ) do (
(FOR /f "tokens=1*delims=:" %%a IN ('findstr /n "^" "%file%"') DO (
SETLOCAL ENABLEDELAYEDEXPANSION
SET "Line=%%b"
IF %%a equ %isoLine#ToSearch% SET "Line=!isoList[%%k]!"
IF %%a equ %sourceLine#ToSearch% SET "Line=!sourceList[%%k]!"
ECHO !Line!
ENDLOCAL
))>"%file%.new"
TYPE "%file%.new"
MOVE "%file%.new" "%file%"
setlocal enabledelayedexpansion
cd C:\Program Files (x86)\HotSpot 3.0.3
start Hotspot303.exe
timeout /t 4
ren Current.out !fileList[%%k]!.txt
))
关于为什么在放入循环时停止工作的任何想法?
由于