Преобразование команды DOS в команду Power Shell - PullRequest
2 голосов
/ 23 июня 2010

Я работаю с PowerShell 2.0 с Psake 1.4

Здесь выполняется команда dos, которую я хочу преобразовать в PowerShell.

"C:\Program Files\Borland\StarTeam 2005 R2\stcmd.exe" co -p "rubble.barney:dinno@HostName:4455/MySolution/WebApp" -is  -fp "D:\FooBar\MySolution\Source"

Обратите внимание, что путь к stcmd имеетпробел в нем
Обратите внимание, что есть: между barney: dinno
Обратите внимание, что в области три строки в кавычках.

Вот мои свойства скрипта и примечания

$ AppName = "MySolution "
$ StarExe =" C: \ Program Files \ Borland \ StarTeam 2005 R2 \ stcmd.exe "
$ StarProject =" rubble.barney: dinno @ HostName: 4455 / $ AppName / WebApp "
$ StarOutDir = "D: \ FooBar \ $ AppName \ Source"
$ StarCommand = "" "$ StarExe" "co -p" "$ StarProject" "-is -nologo -q -fp" "$ StarOutDir" ""

задача по умолчанию - зависит от GetSource

задача Init {
" Работа на $ AppName "
$ ErrorActionPreference = 'Stop'
}

task GetSource -depends Init {
'Get Soure From Star Team'
правильно использовать invoke?Если это & ​​&, или exec {}
invoke-item $ StarCommand}

Любая помощь будет отличной.

Ответы [ 2 ]

4 голосов
/ 23 июня 2010

Попробуйте:

& $starexe co -p $StarProject -is -nologo -q -fp $StarOutDir

Полагаю, вы используете powershell 2.0.В версии 1.0 powershell был более причудливый способ разбора аргументов *.

  • собственные команды = exe, com, bat-файлы и т. Д.

-Oisin

3 голосов
/ 23 июня 2010

Попробуйте:

& $StarExe co -p $StarProject -is -nologo -q -fp $StarOutDir

Отказ от ответственности: я не использовал psake, но я не уверен, почему вам нужно так много двойных кавычек вокруг переменных.FWIW вышеуказанная команда должна работать, если она выполняется в сценарии PowerShell.

...