我对 Windows 脚本完全不熟悉——我可以粗略地阅读它并了解发生了什么,但在写作方面我基本上为零。这就是我想要做的。我有以下脚本
echo on
SET LOGNAME=%7
SET LOGNAME=%LOGNAME%.log
Set CURRDATE=%TEMP%\CURRDATE.TMP
Set CURRTIME=%TEMP%\CURRTIME.TMP
DATE /T > %CURRDATE%
TIME /T > %CURRTIME%
Set PARSEARG="eol=; tokens=1,2,3,4* delims=/, "
For /F %PARSEARG% %%i in (%CURRDATE%) Do SET YYYYMMDD=%%l%%k%%j%%i
Set PARSEARG="eol=; tokens=1,2,3,4* delims=:,. "
For /F %PARSEARG% %%i in (%CURRTIME%) Do Set HHMMSS=%%i%%j%%k%%l
sqlcmd -E -S %1 -d %2 -h-1 -b -w 1000 -Q "EXEC spTest %3,%4,%5 " -o %6Test_%YYYYMMDD%%HHMMSS%.DAT
IF ERRORLEVEL 1 GOTO FAILED
ECHO %YYYYMMDD% %HHMMSS% OK>>%LOGNAME%
GOTO END
:FAILED
ECHO %YYYYMMDD% %HHMMSS% FAILED>>%LOGNAME%
:END
EXIT /B %ERRORLEVEL%
不幸的是,文件的 YYYYMMDD 部分有时会丢失(不知道为什么会发生这种情况 - 非常罕见 - 我只能认为这可能是奇怪的网络故障)。我想要做的是有一个 if 语句,以便如果 YYYYMMDD 为空,我将其设置为某个默认日期。我在我的代码中插入了以下行 - 但这对我没有任何作用。
if %YYYYMMDD% ==" " (set %YYYYMMDD% =20990101)
请问有什么建议吗?