Jestem w trakcie konwersji starego skryptu VB do Powershell. Próbuję użyć instrukcji Switch do ustawienia wielu zmiennych. Czy to możliwe w Powershell? W VBS mój kod będzie wyglądać następująco:Powershell Przełącz oświadczenie, aby ustawić wiele zmiennych
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
Próbowałem coś podobnego w PS, ale nie wydaje się, aby ustawić zmienne.
switch ($cENV) {
DEV {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder1\"
break
}
TEST {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
PROD {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
}
Kiedy sprawdzić wartość obu DESTDRV lub SRCDRV pojawia się błąd mówiąc: Zmienna „$ SRCDRV” nie może zostać odzyskane, ponieważ nie został ustawiony. Jakieś pomysły na temat tego, co robię źle?
$ cENV prawdopodobnie ma jakąś wartość, w przeciwnym razie będzie on wyświetlany jest komunikat o błędzie $ cENV może nie być odzyskane. – dugas
Dzięki, masz rację, jeśli ustawię $ cENV na "DEV", to zwróci poprawną wartość. Nie sądziłem, żebym spróbował ustawić to specjalnie. Zmienna $ cENV jest ustawiana przez funkcję, która określa położenie pliku skryptu. Jeśli umieściłem przełączniki, "DEV", "TEST" i "PROD", w cudzysłowie, działa jak mistrz. Bardzo dziękuję za pomoc! – mack