Термин «Win32» не распознается как имя командлета - передайте символ канала как часть аргумента. - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь сделать скрипт для автоматизации сборки. Сложены по команде «release | Win32»

Команда:

PS C:\Users\Builder> powershell.exe "& 'C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\devenv.com'" C:\Build\
VS2012Build\3.2.7X\ClientServer\SHClientServer\SHCApplicationsVS2012.sln /Clean Release|Win32 No Local

Ошибка:

The term 'Win32' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spell
ing of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:193
+ powershell.exe "& 'C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\devenv.com'" C:\Build\VS2012Build\3.2.7X
\ClientServer\SHClientServer\SHCApplicationsVS2012.sln /Clean Release|Win32 <<<<  No Local
    + CategoryInfo          : ObjectNotFound: (Win32:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

1 Ответ

1 голос
/ 03 апреля 2019

Поскольку | является метасимволом (символ с синтаксическим значением) в PowerShell, вы должны заключить в кавычки , если хотите использовать его в качестве аргумента - либо по отдельности с `, либо, более типично, путем (одиночного или двойного) цитирования всего аргумента:

powershell.exe "& 'C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\devenv.com' C:\Build\VS2012Build\3.2.7X\ClientServer\SHClientServer\SHCApplicationsVS2012.sln /Clean 'Release|Win32' No Local"
  • Обратите внимание, что Release|Win32 теперь заключено в одинарные кавычки ('Release|Win32').
  • Кроме того, для обеспечения надежности я включил всю команду PowerShell в "...".
...