다른 사용법이있는 경우 Windows 배치 파일


10

이 물건을 처음 사용해서 죄송합니다. 다른 매개 변수로 동일한 bat 파일을 특정 순서로 실행하고 싶습니다. 매우 간단한 배치 파일을 작성했습니다.

@echo off

REM Note: to see all command line usage options, run bsearch_headless.bat without any arguments.

call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o pippo

ECHO
IF EXIST pippo.finalBests.csv (call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o topolino)
else goto :eof  

:eof
ECHO Simulatione End!
PAUSE

else인식 되지 않아 작동하지 않습니다 .

도움을 주셔서 감사합니다!


분명히, 당신이 요구하는 문제가 아니라면 ECHO배치 파일의 중간에 ECHO.있거나 그렇지 않아도 됩니까?
Scott

질문에 대답 했습니까?
BDM

답변:


19

if명령 행 의 문서에서 ( TechNet에서help if 또는 TechNet 에서도 사용 가능 )

ELSE 절은 IF 이후의 명령과 같은 행에 있어야합니다. 예를 들면 다음과 같습니다.

IF EXIST filename. (
    del filename.
) ELSE (
    echo filename. missing.
)

del 명령을 줄 바꿈으로 종료해야하므로 다음은 작동하지 않습니다.

IF EXIST filename. del filename. ELSE echo filename. missing

ELSE 명령이 IF 명령의 끝과 같은 행에 있어야하기 때문에 다음 작업도 수행되지 않습니다.

IF EXIST filename. del filename.
ELSE echo filename. missing


따라서 교체하면 스크립트가 작동합니다.

IF EXIST pippo.finalBests.csv (call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o topolino)
else goto :eof 

IF EXIST pippo.finalBests.csv (call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o topolino) else goto :eof

또는

IF EXIST pippo.finalBests.csv (
    call behaviorsearch_headless.bat -p test_behaviorsearch.bsearch -o topolino
) else (
    goto :eof
)

희망이 도움이됩니다.


0

ifelf.cmd :

@ECHO OFF
@IF EXIST "C:\boot.ini" (
@ECHO WoW! It may be M$Windows! 
) ELSE (
@ECHO Boot.ini Lost! My precious! Stolen! 
)
@ECHO .
@ECHO Wait 10 sec ...
@ping 127.0.0.1 -n 10 > NUL

1
S는 무엇입니까 @?
BDM

@ProfPickle 맵 명령을 숨 깁니다. 샘플 @ECHO OFFECHO OFF.
STTR

1
알아요.하지만 일단 넣어두면 사용할 필요가 없습니다 echo off.
BDM

1
@ProfPickle 그렇습니다 . ECHO OFF그러나 시간과 프로그램은 무시 하고 인식하고 @있습니다. 그것을 편집증이나 역사적 사건에 대한 찬사라고 생각하십시오).
STTR 2016 년

1
공평하게, 나는 편집증을 이해합니다.
BDM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.