2013-04-01 3 views
1

에 존재 로그 파일이 있습니다. 그렇다면 변수 % xwinlog %의 현재 값을 로그에 씁니다. 존재하지 않으면 변수의 값이 0보다 큰지 확인하고 그 값이 0보다 크지 않은 경우 로그 파일에 기록한 다음 로그 파일에 0을 씁니다. 마지막 부분은 어떤 이유로 든 로그에 변수를 쓰려고 할 때 변수가 0이기 때문에 "ECHO is off"라고 쓰여집니다.이 내가 가진 그 코드입니다 cmd.exe를

"나는 예상치 못한 오류가 발생했습니다. 이번에는 "

어떤 도움을 주시면 대단히 감사하겠습니다.

+1

당신은 %의 CD의 %가'항상 ** 현재 디렉토리로 대체'있음을 유의하십시오 **; 이것은'% CD % \ filename.ext'가'filename.ext'와 정확히 일치 함을 의미하므로 이전의 형식은 결코 사용되지 않습니다 ... – Aacini

답변

1

누락 된 괄호. 알렉스 지적 닫힌 괄호를 누락

IF EXIST %CD%\tictactoeXwinlog.log (
    ECHO %xwinlog% > tictactoeXwinlog.log 
) ELSE (
    IF %xwinlog% > 0 (
    ECHO %xwinlog% > %CD%\tictactoeXwinlog.log 
    ) ELSE (
    ECHO 0 > %CD%\tictactoeXwinlog.log 
    ) 
) 
3
  1. 하나의 문제입니다.
  2. 또 다른 문제는>는 리디렉션 기호입니다. GTR을 사용하여 산술 비교를하십시오.
  3. % CD %에 공백이있을 경우를 대비하여 비교할 때 "% CD % \ tictactoeXwinlog.log"와 같은 표현식을 따옴표로 묶습니다.
  4. "0을 확인"해야하는 문제는 실제로 xwinlog가 비어있어서 echo 문이 에코 상태 (켜짐/꺼짐)로 표시되는 결과라고 생각합니다. 그래서 나는 항상 에코를 사용합니다. xwinlog 숫자 값 인 경우
  5. , 다음 코드를 단순화 할 수있다 :

    IF NOT %xwinlog% gtr 0 SET xwinlog=0 
    ECHO %xwinlog% > tictactoeXwinlog.log 
    
  6. winlog은 문자열 값 인 경우, 다음 코드를 단순화 할 수 있습니다 어떤 사람들은 ECHO 사용

    IF "%xwinlog%"=="" SET xwinlog=0 or Any string of your choice... like Not Found 
    ECHO %xwinlog% > tictactoeXwinlog.log