Katakanlah saya menjalankan yang berikut ini di shell CMD:
SET "FOO=bar"
Apakah ada cara untuk membatalkan definisi variabel ini selain mendaur ulang shell CMD?
windows
batch-file
cmd
pengguna288004
sumber
sumber
cmd.exe
) ??set var=
jawaban Anda bekerja di bawah MS-DOS 6.22 command.com sama seperti di Windows cmd.exe. (Namun, tidak seperti Windows, menempatkan tanda kutip ganda di sekitar var = tidak berfungsi, melainkan membuat variabel lingkungan yang namanya dimulai dengan tanda kutip ganda.)Jawaban:
Ya, Anda dapat membatalkannya dengan
Atau secara eksplisit menggunakan:
Pastikan tidak ada karakter asing (tidak terlihat) yang tertinggal setelah
=
tanda. Itu adalah:set FOO=
berbeda dariset FOO=
.sumber
Cara aman untuk menghapus variabel adalah dengan menggunakan juga tanda kutip, maka tidak ada masalah dengan spasi tambahan.
sumber
metode lain
Catatan: Ini tidak akan berfungsi pada prompt perintah interaktif. Tetapi bekerja dalam skrip batch.
sumber
Ini berfungsi untuk saya di shell CMD Windows 7 saya:
sumber
set
perintah. Jika Anda mencobaset FOO = bar
dan kemudian mencobaset FOO=
, ini tidak akan menghapus 'FOO'. Untuk beberapa alasan, meskipun, mereka tidak (sebagai?) Signifikan di dalam% %
.Saya akan menawarkan yang berikut ini hanya sebagai komentar, tetapi menurut saya cukup penting untuk berdiri sendiri.
Banyak dari jawaban sebelumnya menyebutkan bahwa seseorang perlu berhati-hati terhadap spasi yang tertinggal; dan pasti itu benar. Namun saya telah menemukan bahwa terkadang spasi tambahan hanya ingin masuk ke sana apa pun yang terjadi - terutama jika Anda melakukan baris perintah satu baris dan membutuhkan spasi sebagai pemisah perintah.
Inilah solusi untuk masalah itu:
Dengan membungkus deklarasi dalam tanda kutip ganda seperti itu, masalah spasi dapat dihindari sepenuhnya. Ini juga bisa sangat berguna ketika variabel dibuat dengan menggabungkan untuk menghilangkan spasi di antara - misalnya - jalur, misalnya:
sumber