Как использовать знак амперсанда в событии сборки?
Я пытаюсь выяснить, как вызвать сценарий 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?
2 ответа
Решение
Вместо этого попробуйте параметр File, для него не требуется амперсанд:
powershell.exe -File "Filename With Spaces.ps1"
Чтобы использовать знак амперсанда, вы можете создать промежуточный cmd
скрипт.
Событие сборки Delphi:
Prebuild.cmd "$(PROJECTDIR)"
Файл Prebuild.cmd:
powershell.exe -Command "& 'Filename With Spaces.ps1'"