values switch sentencia multiple comparing comparadores and variables powershell if-statement conditional-statements

variables - switch - powershell probando una variable que aún no se ha asignado



sentencia if en powershell (3)

Quiero probar para ver si a una variable se le ha asignado una variable y, si no, a realizar una acción. ¿Cómo se puede lograr esto?

Lo intenté con el siguiente código pero recibí el error: El operando derecho de ''-is'' debe ser un tipo.

$ ProgramName no está asignado en este punto.

If ($ProgramName -isnot $null) { $ProgramName = $ProgramName + '', '' + $cncPrograms } Else { If ($cncPrograms -isnot $null) { $ProgramName = $cncPrograms } }


Cualquier variable no asignada tendrá un valor de nulo, no un tipo de datos de nulo. Entonces, solo haz esto:

If ($ProgramName -ne $null)

... que devolverá TRUE si ha sido asignado a un valor no nulo.

Un control aún más fácil de hacer es

IF($ProgramName)

Que comprobará si es $null o no, aunque la lógica está invertida, por lo que podría usar

IF(!$ProgramName)

Editar:

Ruffin plantea un buen punto sobre el modo estricto en los comentarios. Este método funcionará también:

Test-Path variable:ProgramName o Test-Path variable:global:ProgramName si tiene un ámbito global explícito, por ejemplo. Esto devolverá $true o $false dependiendo de si la variable existe.



Test-Path variable:/var debería hacer lo que quiera, supongo.