Как отменить условный тест в 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"
}
Это прекрасно работает, но я бы предпочел что-то встроенное.
windows
powershell
Бен МакКормак
источник
источник
-not
приходит с традиционной альтернативой!
тогда? Могу ли я как-то получить традиционные альтернативы для-eq
и-ne
тоже?-not
это единственный логический оператор, который поставляется с альтернативой (см.help about_Logical_Operators
), И операторы не могут быть псевдонимами.!
обязательных скобок.!
сам по себе не требует скобок. По крайней мере, не в PS3.Если вы похожи на меня и не любите двойные скобки, вы можете использовать функцию
пример
источник
not
реализацию везде (напримерnot Test-Path -path C:\Code
, не будет работать). Смотрите также этот пост .unless
ключевое слово (как и всеif
), но большинство пользователей из других языков ненавидят его.Powershell также принимает оператор C / C ++ / C * not
Я использую это часто, потому что я привык к C * ...
позволяет сжатие / упрощение кода ...
Я также нахожу это более элегантным ...
источник
если вам не нравятся двойные скобки или вы не хотите писать функцию, вы можете просто использовать переменную.
источник