下面的batch file通过:RUNRULES节运行,为文件夹中的每个文件执行DO,并在循环执行之后变得时髦。 IF永远不会被执行。
ECHO被执行,但是echo命令没有被回显,就像ECHO OFF被激活一样。 IF也没有被回应。
::@ECHO OFF SETLOCAL ENABLEEXTENSIONS SET S1=Server1 SET S2=Server2 SET DATABASE=DbName SET SCRIPT=folder\sqlscript.sql :S1 ECHO Running rules in S1 SET SERVER=%S1% GOTO RUNRULES :S2 ECHO Running rules in S2 SET SERVER=%S2% GOTO RUNRULES :RUNRULES SET OUTPUTFILE=%SERVER%_folder.csv COPY NUL %OUTPUTFILE% FOR /f %%f IN ('dir /b /on folder') DO ( IF EXIST results.csv DEL /Q results.csv CALL RunRule "%SERVER%" "%DATABASE%" "folder\%%f" "results.csv" TYPE results.csv >>%OUTPUTFILE% ) ECHO Past the FOR loop IF %SERVER%==%S1% GOTO S2
RunRule是一个包含ECHO OFF的批处理文件,并将环境变量SERVER设置为另一个值,并将引号添加到SERVER的值中。 IF将SERVER的新值与最初设置的值进行比较,因为它们不相等而不执行。