데이터베이스 업그레이드를 수행하는 스크립트가 있습니다.무기한으로 Windows 명령 프롬프트가 중단됩니다.
또한 스크립트는 업그레이드를 시작하기 전에 로그하지만이 스크립트가 로그 파일에 액세스하려고 시도하면 스크립트가 비정상적으로 중단됩니다. 문제를 일으키는
라인은 다음과 같습니다
SETLOCAL enabledelayedexpansion
SET /A FT=500
FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year
/Format:table') DO (
IF NOT !FT!==500 GOTO proceed
SET FD=%%F-%%D-%%A
SET FT=%%B:%%C:%%E
:proceed
SET /A FX="DS"
)
endlocal
LOGMESSAGE의 주요 기능은 현재 시스템 시간을 얻을 수 있습니다 :
%LOGMESSAGE% Start update %UPDVERSION% .
LOGMESSAGE은 다음과 같다 cmd를 파일입니다.
%LOGMESSAGE% Start update %UPDVERSION% .
이 호출되기 전에 로그 파일이 여러 번 기록되므로 스크립트가 기록되는 로그 파일에는 문제가 없으며 LOGMESSAGE 기능도 있습니다. 이 스크립트는 많은 다른 컴퓨터에서 번거 로움없이 작동하는 것으로 보이지만 한 서버에 문제가 있습니다. 서버는 Windows Server 2003 R2 SP2를 실행 중입니다.
어떤 문제일까요? 그냥 날짜와 시간을 얻고 싶은 경우에
예. 그러나 wmic는 로컬 설정에 관계없이 모든 시스템에서 동일한 형식을 제공합니다. – Stephan