2013-11-27 4 views
-2

데이터베이스 업그레이드를 수행하는 스크립트가 있습니다.무기한으로 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를 실행 중입니다.

어떤 문제일까요? 그냥 날짜와 시간을 얻고 싶은 경우에

답변

0

대신 WMI의

DATE /T 
TIME /T 

를 사용할 수 있습니다.

+0

예. 그러나 wmic는 로컬 설정에 관계없이 모든 시스템에서 동일한 형식을 제공합니다. – Stephan

1

이 시도 :

@ECHO OFF &SETLOCAL ENABLEDELAYEDEXPANSION 
SET /A FT=500 
FOR /F "tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Day^,Hour^,Minute^,Month^,Second^,Year /Format:table^|find "20"') DO (
    IF NOT !FT!==500 GOTO proceed 
    SET FD=%%F-%%D-%%A 
    SET FT=%%B:%%C:%%E 
    :proceed 
    SET /A FX="DS" 
)  
endlocal 
+0

고마워요하지만 그 didnt가 작동하는 것, 나는 스크립트에서 에코를 추가하려고 시도하고 그것을 진술에 걸려 결코 그것을 떠난 적이 없다는 것을 알아 냈다. WMIC 경로 Win32_LocalTime Get Day ^, Hour ^, Minute ^, Month ^, Second ^, Year /Format : table '은 (는)'FOR/F ')'. 어떤 생각이 왜 매달려 있습니까?시스템에는 AMD 프로세서가 있습니다. 이유가 될 수 있을까요? – spaniard89

+0

@ spaniard89 나는 편집을했다. – Endoro

0

3 개 의견 :

.cmd 파일이 드문 - 일반적으로, .bat 파일이 사용됩니다. 바로 열기 전에 줄 휴식을

그것은이 완벽하게 합법적이다 (... 나는 더 이상 그들을 기억 할 수 없다)이 둘 사이 약간의 차이가 있지만, 나는 그들이 관련이 있을지 모르겠어요 작은 따옴표와 닫는 직후에. 명령의 중간에 휴식, 나는 잘 모르겠다 -이 말을하지 말고 이지만 문제는 쉽게 없어진다.

저는 더 이상 XP를 거의 사용하지 않고 결코 S2003을 사용하지 않기 때문에 더 이상 확신 할 수 없습니다. 그러나 블록 문 내에서 레이블을 사용하는 데 ISTR 문제가있었습니다. 그 레이블은 그 블록을 끝내는 것처럼 보였습니다.

그래서 - 나는

for...(
'whatever whatever...' 
) do (

구조를 사용하고, 구현,

대신 .cmd.bat로 루틴을 실행하는 게 좋을 것 어떤 어리 석음은 서브 루틴 내에서 약 FD, FTFX 일어나고 .

관련 문제