Powershell 如何传递多个参数以设置AzureRmVMCustomScriptExtension?
用于向名为的VM添加自定义脚本扩展的Azure Cmdlet有一个Powershell 如何传递多个参数以设置AzureRmVMCustomScriptExtension?,powershell,azure,Powershell,Azure,用于向名为的VM添加自定义脚本扩展的Azure Cmdlet有一个-Argument开关,该开关表示它接受字符串,但没有说明如何实现该字符串的示例。虽然它说它可以接受多个参数,但它似乎只支持一个参数 我需要传递多个参数,但找不到正确的语法 例如: $arg1 = "mysitename" $arg2 = "c:/mydirectorytocreate" -Argument "$arg1,$arg2" 如何将多个参数传递给,以便将这些值传递给需要这些值的实际脚本(例如,将IIS站点名称和目录路
-Argument
开关,该开关表示它接受字符串,但没有说明如何实现该字符串的示例。虽然它说它可以接受多个参数,但它似乎只支持一个参数
我需要传递多个参数,但找不到正确的语法
例如:
$arg1 = "mysitename"
$arg2 = "c:/mydirectorytocreate"
-Argument "$arg1,$arg2"
如何将多个参数传递给,以便将这些值传递给需要这些值的实际脚本(例如,将IIS站点名称和目录路径作为两个单独的值传递)。以下是使用多个参数的示例:
如果此代码snipet实际工作,则意味着您需要为参数传递一个以空格分隔的字符串。请确保保留双引号,以便变量正确展开。不确定此cmdlet的ASM(经典版)和ARM版本之间是否存在差异,但对我来说,我必须这样做(为了清楚起见,缺少参数): SomeScript.ps1看起来像:
param
(
[string]$arg1,
[string]$arg2,
[string]$arg3
)
function SomeFunction
{
Write-Host $arg1
Write-Host $arg2
Write-Host $arg3
#Do something here...
}
SomeFunction -arg1 $arg1 -arg2 $arg2 -arg3 $arg3 #Call the function from within SomeScript.ps1
如果您在从自定义脚本扩展运行时能够实际看到Write Host的输出,则会产生以下输出:
foo
bar
cat
嗯。就是这样。最后,我用双引号引用了“$arg1$arg2”。重要的是要注意,我将$arg1和$arg2的值声明为变量,这样我就不必担心引用诸如参数中的路径之类的字符串。请参见此处参数中的空格:“params”应该是文件开头的param,函数体中的params部分也不应该在那里。@AmoghNatu谢谢。更新。
param
(
[string]$arg1,
[string]$arg2,
[string]$arg3
)
function SomeFunction
{
Write-Host $arg1
Write-Host $arg2
Write-Host $arg3
#Do something here...
}
SomeFunction -arg1 $arg1 -arg2 $arg2 -arg3 $arg3 #Call the function from within SomeScript.ps1
foo
bar
cat