gpt4 book ai didi

用于设置多个变量的 Powershell Switch 语句

转载 作者:行者123 更新时间:2023-12-04 09:32:08 26 4
gpt4 key购买 nike

我正在将一些旧的 VB 脚本转换为 Powershell。我正在尝试使用 Switch 语句来设置多个变量。这在Powershell中可能吗?在 VBS 中,我的代码如下所示:

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

我在 PS 中尝试过类似的东西,但它似乎没有设置变量。
switch ($cENV) {
DEV {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder1\"
break
}
TEST {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
PROD {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
}

当我检查 DESTDRV 或 SRCDRV 的值时,我收到一条错误消息:变量 '$SRCDRV' 无法检索,因为它尚未设置。关于我做错了什么的任何想法?

最佳答案

当找到开关的案例时,您的代码会起作用。 $cENV 的值可能与“DEV”、“TEST”或“PROD”不匹配。添加默认 switch case 并在没有匹配项时执行某些操作,例如:

switch ($cENV) {
DEV {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder1\"
break
}
TEST {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
PROD {
$SRCDRV = "\\Server1"
$DSTDRV = "\\Server2\Folder2\"
break
}
default {
throw "No matching environment for `$cENV: $cENV"
}
}

关于用于设置多个变量的 Powershell Switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11728223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com