如何通过CFExecute参数将变量传递给powershell脚本?

时间:2016-11-26 01:04:48

标签: powershell iis coldfusion

我正在尝试使用以下代码将用户提供的值传递到PowerShell脚本中,但我没有运气:

<cfset MyVar="Woila!">

<cfoutput>
<cfexecute name="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" 

arguments="$MyVar = #MyVar# C:\Users\raimonds\Desktop\create_website_IIS_aws_uat_1.ps1" 
/>
</cfoutput>

该参数在PowerShell命令行中写入,但它没有使用此语法$MyVar将变量传递到.ps1脚本。

2 个答案:

答案 0 :(得分:1)

你几乎就在那里。只需更改顺序,如下所示:

<cfset MyVar="Woila!">

<cfexecute name="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" 

arguments="C:\Users\raimonds\Desktop\create_website_IIS_aws_uat_1.ps1 
 MyVar '#MyVar#'" />

或者,将 arguments 属性定义为

arguments="& 'C:\Users\raimonds\Desktop\create_website_IIS_aws_uat_1.ps1' 
     MyVar '#MyVar#'"

这假定您的脚本以通常的方式定义参数MyVar,例如:

 param([string]$MyVar)

请参阅此Stackoverflow page for additional Powershell options您可能想要使用的内容。

答案 1 :(得分:0)

试试吧

<cfexecute name="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" arguments="-file C:\Users\raimonds\Desktop\create_website_IIS_aws_uat_1.ps1 ""youvalue"""/>