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!


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.


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
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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.