2

Psake 1.4でPowerShell 2.0を使用しています

PowerShell に変換したい実行中の dos コマンドを次に示します。

"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 の間に : があることに注意してください。3
つの引用符付き文字列があることに注意してください。

これが私のスクリプトのプロパティとメモです

$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 に依存

task Init {
"$AppName で作業中"
$ErrorActionPreference = 'Stop'
}

task GetSource -depends Init {
'Get Soure From Star Team'
呼び出しの使用は正しいですか? &、または exec { }
invoke-item $StarCommand }

どんな助けでも素晴らしいでしょう。

4

2 に答える 2

4

試す:

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

PowerShell 2.0を使用していると思います。PowerShell のバージョン 1.0 では、より風変わりなネイティブ コマンド* 引数の解析が行われました。

  • ネイティブ コマンド = exe、com、bat ファイルなど。

-オイシン

于 2010-06-22T21:03:13.830 に答える
3

これを試して:

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

免責事項: 私は psake を使用していませんが、変数を二重引用符で囲む必要がある理由がわかりません。FWIW 上記のコマンドは、PowerShell スクリプトで実行すると機能するはずです。

于 2010-06-22T21:02:45.093 に答える