Bagaimana cara meniadakan tes bersyarat di PowerShell?
Misalnya, jika saya ingin memeriksa direktori C: \ Code, saya dapat menjalankan:
if (Test-Path C:\Code){
write "it exists!"
}
Apakah ada cara untuk meniadakan kondisi itu, misalnya (tidak bekerja):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
Penanganan masalah :
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
Ini berfungsi dengan baik, tapi saya lebih suka sesuatu yang sebaris.
windows
powershell
Ben McCormack
sumber
sumber
-not
datang dengan alternatif tradisional!
itu? Bisakah saya mendapatkan alternatif tradisional untuk-eq
dan-ne
juga?-not
adalah satu-satunya operator yang logis yang datang dengan alternatif (lihathelp about_Logical_Operators
), dan operator tidak dapat alias.!
tanda kurung yang diperlukan.!
sendiri tidak memerlukan tanda kurung. Setidaknya tidak di PS3.Jika Anda seperti saya dan tidak menyukai tanda kurung ganda, Anda dapat menggunakan suatu fungsi
Contoh
sumber
not
implementasi ini di mana-mana (misalnyanot Test-Path -path C:\Code
tidak akan berfungsi). Lihat juga pos terkait ini .unless
kata kunci (sepertiif
) tetapi sebagian besar pengguna dari bahasa lain membencinya.Powershell juga menerima operator C / C ++ / C * bukan
Saya sering menggunakannya karena saya sudah terbiasa dengan C * ...
memungkinkan kompresi / penyederhanaan kode ...
Saya juga merasa lebih elegan ...
sumber
jika Anda tidak suka tanda kurung ganda atau Anda tidak ingin menulis fungsi, Anda bisa menggunakan variabel.
sumber