Jak zanegować test warunkowy w programie PowerShell?
Na przykład, jeśli chcę sprawdzić katalog C: \ Code, mogę uruchomić:
if (Test-Path C:\Code){
write "it exists!"
}
Czy istnieje sposób na zanegowanie tego warunku, np. (Niedziałający):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
Obejście :
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
To działa dobrze, ale wolałbym coś wbudowanego.
windows
powershell
Ben McCormack
źródło
źródło
-not
pochodzi z tradycyjną alternatywą!
? Czy mogę jakoś uzyskać alternatywy dla tradycyjnych-eq
, a-ne
także?-not
jest jedynym operatorem logicznym, który jest dostarczany z alternatywnym (patrzhelp about_Logical_Operators
), a operatory nie mogą być aliasowane.!
wymaganych nawiasów.!
Sam Holistic-Developer nie wymaga nawiasów. Przynajmniej nie w PS3.Jeśli jesteś podobny do mnie i nie lubisz podwójnego nawiasu, możesz użyć funkcji
Przykład
źródło
not
wszędzie używać tej implementacji (na przykładnot Test-Path -path C:\Code
nie będzie działać). Zobacz także ten powiązany post .unless
jako słowo kluczowe (podobnie jakif
), ale większość użytkowników z innych języków go nienawidzi.Program PowerShell akceptuje również operator C / C ++ / C * not
Używam go często, ponieważ jestem przyzwyczajony do C * ...
pozwala na kompresję / uproszczenie kodu ...
Uważam też, że jest bardziej elegancki ...
źródło
jeśli nie lubisz podwójnych nawiasów lub nie chcesz pisać funkcji, możesz po prostu użyć zmiennej.
źródło