从PowerShell脚本A调用脚本B时出现执行错误求助
问题修复方案
核心错误点及修正:
未正确指定被调用脚本路径
变量$B未定义,PowerShell无法定位要执行的脚本。需直接指定同目录下B.ps1的相对路径:.\B.ps1。参数传递语法错误
调用脚本时不能使用赋值语句$message = "Deployment In Progress",必须遵循-参数名 参数值的格式,改为-message "Deployment In Progress"。变量覆盖导致属性调用失效
原$p1/$p2是[switch]类型参数,赋值为整数后再调用IsPresent属性会报错(整数无该属性)。需改用新变量存储数值,避免覆盖原开关参数。
修正后的A.ps1脚本:
param([switch] $p1, [switch] $p2) # 指定同目录下B.ps1的路径 $targetScript = ".\B.ps1" if ($p1.IsPresent) { $p1Value = 2 & $targetScript -onboardingId "" -p1 $p1Value -message "Deployment In Progress" -connectionString $connectionString } elif ($p2.IsPresent) { $p2Value = 3 & $targetScript -onboardingId "" -p2 $p2Value -message "Deployment In Progress" -connectionString $connectionString }
额外注意事项:
- 确认
B.ps1存在于当前工作目录,若路径不同需调整$targetScript的绝对/相对路径。 - 若
$connectionString未在A.ps1中提前定义,需补充赋值逻辑,否则会传递$null给B.ps1。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

