Terkadang berguna untuk memeriksa file batch jika file tersebut dimulai dari prompt perintah yang ditinggikan atau sebagai administrator. Saya ingin berbagi dengan Anda trik yang saya gunakan untuk melakukan ini. Ide utama trik saya didasarkan pada nilai variabel lingkungan khusus% errorlevel% yang menyimpan kode keluar untuk sebagian besar aplikasi dan perintah konsol. Mari kita lihat ini beraksi.
Iklan
Saat beberapa aplikasi konsol menyelesaikan tugasnya dengan benar, variabel% errrorlevel% menyimpan 0 sebagai nilainya.
Buka contoh prompt perintah baru dan jalankan perintah 'dir'. Setelah itu, cetak nilai% errorlevel% menggunakan perintah 'echo':
dir echo% errorlevel%
Ini akan menghasilkan 0 sebagai output.
Sekarang, mari kita coba menjalankan perintah yang membutuhkan elevasi, dari jendela command prompt biasa. Sebagai contoh, mari kita coba openfiles perintah yang membutuhkan hak admin.
Jika Anda mencetak nilai% errorlevel%, nilainya tidak akan 0 karena perintah openfiles akan gagal menampilkan file yang dibuka tanpa hak administrator.
Namun, jika Anda menjalankannya dari prompt perintah yang ditinggikan ( berikut adalah cara membuka prompt cmd admin ), ini akan menunjukkan Anda membuka file dan akan mengembalikan 0, seperti yang diharapkan.
Dengan menggunakan fitur ini, dimungkinkan untuk menerapkan pemeriksaan sederhana di file batch:
@echo off openfiles> NUL 2> & 1 if NOT% ERRORLEVEL% EQU 0 goto NotAdmin echo Halo dari prompt perintah yang ditinggikan goto End: NotAdmin echo Prompt perintah ini TIDAK DILEPASKAN: Selesai
Perhatikan bahwa saya menggunakan pengalihan keluaran untuk menekan keluaran apa pun dari perintah openfiles. Di bagian '> NUL 2> & 1', keluaran default dari perintah dialihkan ke mana-mana (NUL), dan keluaran kesalahan dialihkan ke keluaran standar, yaitu ke NUL juga.
Alih-alih perintah openfiles, Anda bisa menggunakan perintah apa pun yang membutuhkan elevasi, misalnya, sesi bersih perintah.
Itu dia.