2013-06-25 4 views
3

Я пытаюсь понять, как вызвать скрипт PowerShell с пробелами в имени файла как событие сборки Delphi.Как использовать знак амперсанда в событии сборки?

От CMD я должен позвонить powershell.exe -Command "& 'Filename With Spaces.ps1'", который отлично работает.

Delphi, с другой стороны, удваивает знак амперсанда и пытается превратить команду в две команды.

Я попытался установить это как событие сборки:

powershell.exe -Command "& '$(PROJECTDIR)\Prebuild.ps1' $(PROJECTDIR)" 

Что получает выполняется MSBuild является:

powershell.exe -Command "&& 'D:\SVN\AccuLib 3.0\VCLUI\Prebuild.ps1' D:\SVN\AccuLib 3.0\VCLUI" 

Так что же нужно, чтобы вызвать ps1 файл, содержащий пробелы из Событие сборки Delphi?

ответ

5

Попробуйте параметр File вместо этого, оно не требует амперсанд:

powershell.exe -File "Filename With Spaces.ps1" 
+0

работает нормально, я могу также передать дополнительные аргументы 'ps1' сценария. –

1

Чтобы использовать знак амперсанд вы можете создать промежуточный cmd сценарий.

Delphi сборки событие:

Prebuild.cmd "$(PROJECTDIR)" 

Prebuild.cmd файл:

powershell.exe -Command "& 'Filename With Spaces.ps1'"