这是我的代码:
IF "%LOGFILE%" NEQ "" ( CALL :DO_SOMETHING 2>&1> %LOGFILE% ) ELSE ( CALL :DO_SOMETHING )
我面临的问题是,IF / ELSE陈述被视为一个大的陈述,整个陈述需要在语法上是正确的。 因此,如果“%LOGFILE%”确实等于“”,则第一个CALL语句在语法上将不会是正确的(尽pipe在这种情况下永远不会调用),从而使整个IF / ELSE语句在语法上不正确。
我怎样才能解决这个问题?
IF "%LOGFILE%" NEQ "" ( SET logfile_redirection=2^>^&1^> %LOGFILE% ) ELSE ( SET logfile_redirection= ) CALL :DO_SOMETHING %logfile_redirection%
其他方式:
SET logfile_redirection=2>&1> %LOGFILE% IF "%LOGFILE%"=="" SET "logfile_redirection=" CALL :DO_SOMETHING %logfile_redirection%
SET的引号不是必需的,但确保没有尾随空格。