Как отключить условие в PowerShell?
Как отменить условный тест в PowerShell?
Например, если я хочу проверить каталог C:\Code, я могу запустить:
if (Test-Path C:\Code){
write "it exists!"
}
Есть ли способ отменить это условие, например. (Нерабочий):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
Обход
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
Это отлично работает, но я бы предпочел что-то встроенное.
Ответы
Ответ 1
У вас почти было это с Not
. Это должно быть:
if (-Not (Test-Path C:\Code)) {
write "it doesn't exist!"
}
Вы также можете использовать !
: if (!(Test-Path C:\Code)){}
Просто для удовольствия вы также можете использовать побитовое исключение или, хотя это не самый читаемый/понятный метод.
if ((test-path C:\code) -bxor 1) {write "it doesn't exist!"}
Ответ 2
Если вы похожи на меня и не любите двойную скобку, вы можете использовать функцию
function not ($cm, $pm) {
if (& $cm $pm) {0} else {1}
}
if (not Test-Path C:\Code) {'it does not exist!'}
Пример
Ответ 3
if (!(Test-Path C:\Code)) {
write "it doesn't exist!"
}
Ответ 4
Powershell также принимает оператор C/C++/C *, а не оператор
if (! (Test-Path C:\Code)) {напишите "его не существует!" }
Я использую его часто, потому что я привык к C *... позволяет сжатие/упрощение кода... Я также нахожу это более элегантным...