基于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