私は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)
何かアドバイスはありますか?