Como nego um teste condicional no PowerShell?
Por exemplo, se eu quiser verificar o diretório C: \ Code, posso executar:
if (Test-Path C:\Code){
write "it exists!"
}
Existe uma maneira de negar essa condição, por exemplo (não trabalhando):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
Solução alternativa :
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
Isso funciona bem, mas eu prefiro algo embutido.
windows
powershell
Ben McCormack
fonte
fonte
-not
vem com a alternativa tradicional de!
então? Posso de alguma forma obter as alternativas tradicionais para-eq
e-ne
também?-not
é o único operador lógico que vem com uma alternativa (consultehelp about_Logical_Operators
) e os operadores não podem ser aliasados.!
parênteses necessários.!
não requer parênteses. Pelo menos não no PS3.Se você é como eu e não gosta do parêntese duplo, pode usar uma função
Exemplo
fonte
not
implementação em qualquer lugar (por exemplonot Test-Path -path C:\Code
, não funcionará). Veja também este post relacionado .unless
como palavra-chave (assim comoif
), mas a maioria dos usuários de outras línguas odeia.O PowerShell também aceita o operador C / C ++ / C * não
Uso-o frequentemente porque estou acostumado a C * ...
permite a compactação / simplificação de código ...
Também acho mais elegante ...
fonte
se você não gosta de colchetes duplos ou não deseja escrever uma função, basta usar uma variável.
fonte