我正在尝试使用以下代码将用户提供的值传递到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脚本。
答案 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"""/>