基於JiBe的回答,其他方式,這裏是工作解決方案。運行需要參數的powershell時,需要運行powershell腳本,然後運行參數。
PS yourscript.ps1 -arg1 value1 -arg2 value2
在南特:
<exec program="powershell" workingdir="${powershell_dir}" verbose="true">
<arg value=".\yourscript.ps1"/>
<arg value="-arg1 ${value1}"/>
<arg value="-arg2 ${value2}"/>
</exec>
我認爲最好的辦法是在PS中定義的參數爲楠就像
$value1=$args[0]
$value2=$args[1]
因此,在命令行中,你將使用:
PS yourscript.ps1 some_value1 some_value2
然後這翻譯在NAnt裏ke:
<property name="Value1" value="some_Value1" />
<property name="Value2" value="some_Value2" />
<exec program="powershell" workingdir="${powershell_dir}" verbose="true">
<arg value=".\yourscript.ps1"/>
<arg value="${value1}"/>
<arg value="${value2}"/>
</exec>
能否請你澄清你的符號的使用?沒有解釋,你的答案看起來幾乎與[VJ M的答案](http://stackoverflow.com/a/4311491/622391)相同? – 2015-12-15 23:12:35
&符號是PowerShell中的調用操作符。以下內容來自特殊運算符下的'get-help about_operators'命令輸出:'&Call運算符 運行命令,腳本或腳本塊。調用操作符(也稱爲 「調用操作符」)允許您運行存儲在變量中並由字符串表示的命令。由於呼叫運營商不解析命令,所以它不能解釋命令參數。' – 2016-01-28 21:59:08
爲了進一步闡明,根據我的經驗,不包括它可能會導致參數由powershell.exe而不是腳本處理,或者一般都會丟失。 – 2016-01-28 22:13:07