这是我的PowerScript任务
<powershell>
<script>RunScout3G.ps1</script>
<executable>C:\WINDOWS\system32\WindowsPowerShell\v1.0\PowerShell.exe</executable>
<scriptsDirectory>C:\Program Files\CruiseControl.NET\Our_PowerShell</scriptsDirectory>
<buildArgs></buildArgs>
<successExitCodes>0</successExitCodes>
<buildTimeoutSeconds>900</buildTimeoutSeconds>
<description>Example of how to run a PowerShell script.</description>
</powershell>
错误就是这个......
<buildresults>
<message level="Error">The term 'C:\Program' is not recognized as the name of a cmdlet, function, scri </message>
<message level="Error">pt file, or operable program. Check the spelling of the name, or if a path was </message>
<message level="Error">included, verify that the path is correct and try again.</message>
<message level="Error">At line:1 char:11 </message>
<message level="Error">+ C:\Program <<<< Files\CruiseControl.NET\JCDC_PowerShell\RunScout3G.ps1 </message>
<message level="Error"> + CategoryInfo : ObjectNotFound: (C:\Program:String) [], CommandN </message>
<message level="Error"> otFoundException </message>
<message level="Error"> + FullyQualifiedErrorId : CommandNotFoundException </message>
<message level="Error"> </message>
问题在于scriptsDirectory。驱动器名称“Program Files”中有一个空格 如果我试着把它“绕过它,或者”它周围巡航控制说无效的驱动器。 任何帮助都会很棒。
PowerShell版本是V2
CruiseControl.Net的版本是1.5.6755.1
答案 0 :(得分:4)
您也可以尝试使用8个字符的目录名称。如果您运行 dir / x ,您将看到缩写的名称。它们永远不会有任何空格,所以这是避免转义字符问题的好方法。在你的情况下它应该看起来像 c:\ PROGRA~1 \ CRUISE~1 ......
答案 1 :(得分:0)
好的,如果它不接受引号(您是否尝试过“在XML语法中?),根据您的系统,您可以链接到正确的驱动器,这样您就可以使用新的路径powershell可执行文件:
mklink /D c:\powershell "C:\WINDOWS\system32\WindowsPowerShell\v1.0"
然后
<script>RunScout3G.ps1</script>
<executable>C:\powershell\PowerShell.exe</executable>
不过,如果你使用Powershell V2,那是正确的路径吗?