2010-08-04 4 views
3

Вот мой PowerScript ЗадачаCruiseControl.Net не играет хорошо с PowerShell

<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» есть пробел.
Если я пытаюсь и поставить "вокруг него, или" вокруг него CruiseControl говорит недопустимый диск. Любая помощь будет удивительным.

версия PowerShell является V2

Версия CruiseControl.NET является 1.5.6755.1

ответ

4

Вы также можете попробовать использовать имена символов из 8 символов. Если вы запустите dir/x, вы увидите сокращенные имена. У них никогда не будет никаких пробелов в них, поэтому это хороший способ избежать проблем с экранированными символами. В вашем случае это должно выглядеть C: \ PROGRA ~ 1 \ КРУИЗ ~ 1 ...

+0

Изменение пути до 8.3 успешно работало. – Razcer

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, является то, что правильный путь?

+0

Согласно ФПУ, вопрос не с путем в , но с путем в , Помимо этого, это выглядит для меня хорошей идеей. –

Смежные вопросы