Bagikan melalui


if

Melakukan pemrosesan bersyarah dalam program batch.

Sintaks

if [not] ERRORLEVEL <number> <command> [else <expression>]
if [not] <string1>==<string2> <command> [else <expression>]
if [not] exist <filename> <command> [else <expression>]

Jika ekstensi perintah diaktifkan, gunakan sintaks berikut:

if [/i] <string1> <compareop> <string2> <command> [else <expression>]
if cmdextversion <number> <command> [else <expression>]
if defined <variable> <command> [else <expression>]

Parameter

Parameter Deskripsi
not Menentukan bahwa perintah harus dilakukan hanya jika kondisi salah.
errorlevel <number> Menentukan kondisi true hanya jika program sebelumnya yang dijalankan oleh Cmd.exe mengembalikan kode keluar yang sama dengan atau lebih besar dari angka.
<command> Menentukan perintah yang harus dilakukan jika kondisi sebelumnya terpenuhi.
<string1>==<string2> Menentukan kondisi true hanya jika string1 dan string2 sama. Nilai-nilai ini dapat berupa string literal atau variabel batch (misalnya, %1). Anda tidak perlu mengapit string harfiah dalam tanda kutip.
Ada <filename> Menentukan kondisi true jika nama file yang ditentukan ada.
<compareop> Menentukan operator perbandingan tiga huruf, termasuk:
  • EQU - Sama dengan
  • NEQ - Tidak sama dengan
  • LSS - Kurang dari
  • LEQ - Kurang dari atau sama dengan
  • GTR - Lebih besar dari
  • GEQ - Lebih besar dari atau sama dengan
/i Memaksa perbandingan string untuk mengabaikan kasus. Anda dapat menggunakan /i dalam string1==string2 bentuk if. Perbandingan ini umum, karena jika string1 dan string2 hanya terdiri dari digit numerik, string dikonversi menjadi angka dan perbandingan numerik dilakukan.
cmdextversion <number> Menentukan kondisi true hanya jika nomor versi internal yang terkait dengan fitur ekstensi perintah Cmd.exe sama dengan atau lebih besar dari angka yang ditentukan. Versi pertama adalah 1. Ini meningkat dengan kenaikan satu ketika peningkatan yang signifikan ditambahkan ke ekstensi perintah. Kondisional cmdextversion tidak pernah benar ketika ekstensi perintah dinonaktifkan (secara default, ekstensi perintah diaktifkan).
Didefinisikan <variable> Menentukan kondisi true jika variabel didefinisikan.
<expression> Menentukan perintah baris perintah dan parameter apa pun yang akan diteruskan ke perintah dalam klausa lain.
/? Menampilkan bantuan pada prompt perintah.

Keterangan

  • Jika kondisi yang ditentukan dalam klausul if adalah true, perintah yang mengikuti kondisi dilakukan. Jika kondisi salah, perintah dalam klausul if diabaikan dan perintah menjalankan perintah apa pun yang ditentukan dalam klausa lain .

  • Ketika program berhenti, program mengembalikan kode keluar. Untuk menggunakan kode keluar sebagai kondisi, gunakan parameter errorlevel .

  • Jika Anda menggunakan ditentukan, tiga variabel berikut ditambahkan ke lingkungan: %errorlevel%, %cmdcmdline%, dan %cmdextversion%.

    • %errorlevel%: Memperluas ke representasi string dari nilai variabel lingkungan ERRORLEVEL saat ini. Variabel ini mengasumsikan bahwa belum ada variabel lingkungan yang ada dengan nama ERRORLEVEL. Jika ada, Anda akan mendapatkan nilai ERRORLEVEL sebagai gantinya.

    • %cmdcmdline%: Memperluas ke baris perintah asli yang diteruskan ke Cmd.exe sebelum pemrosesan apa pun oleh Cmd.exe. Ini mengasumsikan bahwa belum ada variabel lingkungan yang ada dengan nama CMDCMDLINE. Jika ada, Anda akan mendapatkan nilai CMDCMDLINE sebagai gantinya.

    • %cmdextversion%: Memperluas ke representasi string dari nilai cmdextversion saat ini. Ini mengasumsikan bahwa belum ada variabel lingkungan yang ada dengan nama CMDEXTVERSION. Jika ada, Anda akan mendapatkan nilai CMDEXTVERSION sebagai gantinya.

  • Anda harus menggunakan klausul lain pada baris yang sama dengan perintah setelah if.

Contoh

Untuk menampilkan pesan Tidak dapat menemukan file data jika file Product.dat tidak dapat ditemukan, ketik:

if not exist product.dat echo Cannot find data file

Untuk memformat disk di drive A dan menampilkan pesan kesalahan jika terjadi kesalahan selama proses pemformatan, ketik baris berikut dalam file batch:

:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.

Untuk menghapus file Product.dat dari direktori saat ini atau menampilkan pesan jika Product.dat tidak ditemukan, ketik baris berikut dalam file batch:

IF EXIST Product.dat (
del Product.dat
) ELSE (
echo The Product.dat file is missing.
)

Catatan

Baris-baris ini dapat digabungkan menjadi satu baris sebagai berikut:

IF EXIST Product.dat (del Product.dat) ELSE (echo The Product.dat file is missing.)

Untuk menggemakan nilai variabel lingkungan ERRORLEVEL setelah menjalankan file batch, ketik baris berikut dalam file batch:

goto answer%errorlevel%
:answer1
echo The program returned error level 1
goto end
:answer0
echo The program returned error level 0
goto end
:end
echo Done!

Untuk masuk ke label oke jika nilai variabel lingkungan ERRORLEVEL kurang dari atau sama dengan 1, ketik:

if %errorlevel% LEQ 1 goto okay