【问题标题】:How do I pass parameters from Child to Parent in Azure RunBooks如何在 Azure RunBooks 中将参数从子级传递到父级
【发布时间】:2018-07-11 05:47:33
【问题描述】:

所以,有人会认为这很简单,但我已经处理了几天了。

基本上是这样的:

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 中,就不行了。我认为这可能是单引号/双引号问题,但这并没有带来任何进展。有任何想法吗?

提前致谢!

【问题讨论】:

    标签: powershell azure azure-automation runbook


    【解决方案1】:

    当你只运行这样的脚本时:

    ./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
    

    【讨论】:

    • 谢谢@Mathias R. Jessen 我欠你一杯啤酒!
    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多