Sono in procinto di convertire alcuni vecchi script VB in PowerShell. Sto cercando di utilizzare un'istruzione Switch per impostare più variabili. È possibile in Powershell? In VBS mio codice sarebbe simile a questa:Istruzione switch Powershell per impostare più variabili
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
ho provato qualcosa di simile in PS, ma non sembra per impostare le variabili.
switch ($cENV) {
DEV {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder1\"
break
}
TEST {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
PROD {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
}
Quando controllo il valore di una DESTDRV o SRCDRV ottengo un errore che dice: La variabile '$ SRCDRV' non possono essere recuperate, perché non è stato impostato. Qualche idea su cosa sto facendo male?
$ Cenv probabilmente ha un certo valore, altrimenti sarebbe un messaggio di errore che $ Cenv non può essere recuperate. – dugas
Grazie, hai ragione, se imposto $ cENV su "DEV" restituisce il valore corretto. Non ho pensato di provare a specificarlo. La variabile $ cENV viene impostata da una funzione che determina la posizione del file di script. Se metto gli interruttori, "DEV", "TEST" e "PROD", tra virgolette, funziona come un campione. Grazie mille per il tuo aiuto! – mack