¿Cómo niego una prueba condicional en PowerShell?
Por ejemplo, si quiero verificar el directorio C: \ Code, puedo ejecutar:
if (Test-Path C:\Code){
write "it exists!"
}
¿Hay alguna manera de negar esa condición, por ejemplo (no funciona):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
Solución alternativa :
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
Esto funciona bien, pero preferiría algo en línea.
windows
powershell
Ben McCormack
fuente
fuente
-not
viene con la alternativa tradicional de!
entonces? ¿De alguna manera puedo obtener las alternativas tradicionales-eq
y-ne
también?-not
es el único operador lógico que viene con una alternativa (verhelp about_Logical_Operators
), y los operadores no pueden tener alias.!
paréntesis requeridos.!
sí mismo no requiere paréntesis. Al menos no en PS3.Si eres como yo y no te gusta el paréntesis doble, puedes usar una función
Ejemplo
fuente
not
implementación en todas partes (por ejemplonot Test-Path -path C:\Code
, no funcionará). Vea también esta publicación relacionada .unless
como palabra clave (igual queif
) pero la mayoría de los usuarios de otros idiomas lo odian.Powershell también acepta el operador no C / C ++ / C *
Lo uso a menudo porque estoy acostumbrado a C * ...
permite la compresión / simplificación de código ...
También me parece más elegante ...
fuente
Si no le gustan los corchetes dobles o no desea escribir una función, puede usar una variable.
fuente