File batch Windows jika penggunaan lain

10

Maaf saya baru dalam hal ini. Saya ingin menjalankan dalam urutan tertentu file bat yang sama dengan parameter yang berbeda. Saya menulis file batch yang sangat sederhana:

@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

Itu tidak berfungsi karena elsetidak dikenali.

Terima kasih banyak atas bantuannya!

Paola
sumber
Jelas, jika bukan masalah yang Anda tanyakan, tetapi bukankah ECHOdi tengah-tengah file batch Anda perlu menjadi ECHO.atau sesuatu?
Scott
Sudahkah saya menjawab pertanyaan Anda?
BDM

Jawaban:

19

Dari ifdokumentasi di baris perintah (via help ifatau tersedia di TechNet juga).

Klausa ELSE harus muncul pada baris yang sama dengan perintah setelah IF. Sebagai contoh:

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

Berikut ini TIDAK akan berfungsi karena perintah del perlu diakhiri oleh baris baru:

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

Juga tidak akan berfungsi sebagai berikut, karena perintah ELSE harus di baris yang sama dengan akhir dari perintah IF:

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


Jadi, skrip Anda akan berfungsi jika Anda diganti

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

Dengan

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

ATAU

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

Semoga itu bisa membantu.

BDM
sumber
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
STTR
sumber
1
Ada apa dengan semua ini @?
BDM
@ProfPickle Menyembunyikan perintah peta. Sampel @ECHO OFFdan ECHO OFF.
STTR
1
Saya tahu, tetapi Anda tidak perlu menggunakannya begitu Anda meletakkannya echo off.
BDM
1
@ProfPickle Ya, memang, tapi ada waktu dan program mengabaikan ECHO OFFtetapi mempersepsikan @. Anggap saja sebagai penghargaan untuk paranoia atau kasus-kasus historis saya).
STTR
1
Cukup adil, saya mengerti paranoia.
BDM