Estoy en el proceso de convertir algún script antiguo de VB a Powershell. Estoy tratando de usar una instrucción Switch para establecer múltiples variables. ¿Es esto posible en Powershell? En VBS mi código sería algo como esto:Declaración del conmutador Powershell para establecer múltiples variables
Select Case ENV
Case "DEV"
: SRCDRV = "\\Server1" _
: DESTDRV = "\\Server1\Folder1\"
Case "TEST"
: SRCDRV = "F:" _
: DESTDRV = "\\Server1\Folder2\"
Case "PROD"
: SRCDRV = "F:" _
: DESTDRV = "\\Server2\Folder2\"
End Select
He intentado algo similar en PS, pero no parece establecer las variables.
switch ($cENV) {
DEV {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder1\"
break
}
TEST {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
PROD {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
}
Cuando compruebo el valor de cualquiera de DESTDRV o SRCDRV me sale un error que dice: La variable no puede ser recuperada, ya que no se ha establecido '$ SRCDRV'. ¿Alguna idea sobre lo que estoy haciendo mal?
$ Cenv probablemente tiene algún valor, de lo contrario se obtendría un mensaje de error $ Cenv no puede ser recuperado. – dugas
Gracias, tienes razón, si configuro $ cENV en "DEV" devuelve el valor correcto. No pensé en intentar configurarlo específicamente. La variable $ cENV está siendo establecida por una función que determina la ubicación del archivo de script. Si pongo los interruptores, "DEV", "TEST" y "PROD", entre comillas, funciona como un campeón. ¡Muchas gracias por su ayuda! – mack