如何在 Azure RunBooks 中将参数从 Child 传递到 Parent
How do I pass parameters from Child to Parent in Azure RunBooks
所以,有人会认为这很简单,但我已经处理这个问题好几天了。
基本上是这样的:
Parent.ps1
#calling the childrunbook
./childrunbook.ps1 -FirstName 'John'-LastName 'Snow'
$newGreeting = $greeting + 'John Snow'
Write-Output $newGreeting
Child.ps1
param(
[string]$Firstname,
[string]$Lastname
)
$greeting = 'Hello from the Child Runbook'
Write-Output $greeting
结果
#I was hoping to get
"Hello from the Child Runbook John Snow"
#But all I'm getting is:
"John Snow" :-(
我可以在 Powershell 中轻松完成此操作,但是一旦我将相同的代码放入 Azure 上的 Powershell Runbooks 中,就不行了。我认为这可能是一个 quote/double 引用问题,但这并没有导致任何进展。有任何想法吗?
提前致谢!
当你 运行 像这样的脚本时:
./childrunbook.ps1 -FirstName 'John'-LastName 'Snow'
它在它自己的 范围内执行 - 这意味着在脚本中写入变量的任何内容都只会修改该变量的 本地副本 ,并且更改不会触及父范围内的任何内容。
为了在调用范围中执行脚本,使用点源运算符.
:
. ./childrunbook.ps1 -FirstName 'John'-LastName 'Snow'
或者,您只需将子脚本的输出分配给调用范围内的一个变量:
$greeting = ./childrunbook.ps1 -FirstName 'John'-LastName 'Snow'
$newGreeting = $greeting + 'John Snow'
Write-Output $newGreeting
所以,有人会认为这很简单,但我已经处理这个问题好几天了。
基本上是这样的:
Parent.ps1
#calling the childrunbook
./childrunbook.ps1 -FirstName 'John'-LastName 'Snow'
$newGreeting = $greeting + 'John Snow'
Write-Output $newGreeting
Child.ps1
param(
[string]$Firstname,
[string]$Lastname
)
$greeting = 'Hello from the Child Runbook'
Write-Output $greeting
结果
#I was hoping to get
"Hello from the Child Runbook John Snow"
#But all I'm getting is:
"John Snow" :-(
我可以在 Powershell 中轻松完成此操作,但是一旦我将相同的代码放入 Azure 上的 Powershell Runbooks 中,就不行了。我认为这可能是一个 quote/double 引用问题,但这并没有导致任何进展。有任何想法吗?
提前致谢!
当你 运行 像这样的脚本时:
./childrunbook.ps1 -FirstName 'John'-LastName 'Snow'
它在它自己的 范围内执行 - 这意味着在脚本中写入变量的任何内容都只会修改该变量的 本地副本 ,并且更改不会触及父范围内的任何内容。
为了在调用范围中执行脚本,使用点源运算符.
:
. ./childrunbook.ps1 -FirstName 'John'-LastName 'Snow'
或者,您只需将子脚本的输出分配给调用范围内的一个变量:
$greeting = ./childrunbook.ps1 -FirstName 'John'-LastName 'Snow'
$newGreeting = $greeting + 'John Snow'
Write-Output $newGreeting