如何通过 CFExecute 参数将变量传递给 powershell 脚本?
How to pass variable into powershell script through CFExecute arguments?
我正在尝试使用以下代码将用户提供的值传递到 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 脚本中。
试一试
<cfexecute name="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" arguments="-file C:\Users\raimonds\Desktop\create_website_IIS_aws_uat_1.ps1 ""youvalue"""/>
你快到了。只需更改顺序即可,如下:
<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)
看看这个 Whosebug page for additional Powershell options 你可能想要使用。
我正在尝试使用以下代码将用户提供的值传递到 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 脚本中。
试一试
<cfexecute name="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" arguments="-file C:\Users\raimonds\Desktop\create_website_IIS_aws_uat_1.ps1 ""youvalue"""/>
你快到了。只需更改顺序即可,如下:
<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)
看看这个 Whosebug page for additional Powershell options 你可能想要使用。