2010-06-22 165 views
2

我使用PowerShell 2.0正與Psake 1.4轉換DOS命令到Power Shell命令

這裏是正在運行,我想轉換爲PowerShell中的DOS命令。

"C:\Program Files\Borland\StarTeam 2005 R2\stcmd.exe" co -p "rubble.barney:[email protected]:4455/MySolution/WebApp" -is -fp "D:\FooBar\MySolution\Source" 

注意,路徑stcmd中有
注意到一個空間,有一個:巴尼之間: dinno
發現有區三名帶引號的字符串。

這裏是我的腳本性能,並指出

·$ APPNAME = 「MySolution」
$ StarExe = 「C:\ Program Files文件\ Borland的\的StarTeam 2005 R2 \ stcmd.exe」
$ StarProject =「廢墟.barney:dinno @ HostName:4455/$ AppName/WebApp「
$ StarOutDir =」D:\ FooBar \ $ AppName \ Source「
$ StarCommand =」「」$ StarExe「」co -p「」$ StarProject「 「-is -nologo -q -fp」「$ StarOutDir」「」

任務默認-depends GetSource

任務初始化{

$ ErrorActionPreference 「上$ AppName的工作」= '停止'
}

任務的getSource -depends初始化{
'獲取SOURE從明星隊'
正確使用invoke?它應該是&,或者exec {}
調用項$ StarCommand }

任何幫助將是真棒。

回答

4

嘗試:

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

我相信你正在使用PowerShell 2.0。版本1.0的PowerShell有方式quirkier本地命令*參數解析。

  • 本機命令= EXE,COM,BAT文件等

-Oisin

+0

我試過 &$ StarExe co -p $ StarProject -is -nologo -q -fp $ StarOutDir 得到: 找不到驅動器。名稱爲「C」的驅動器不存在 – Razcer 2010-06-22 21:59:09

+0

你有沒有用真正簡單的參數進行測試,如「&$ prog」,其中$ prog是,嗯,比如說「c:\ windows \ system32 \ cmd.exe 「? – x0n 2010-06-23 20:25:11

+0

這是一個與變量中的路徑有關的引號問題,doh! – Razcer 2011-01-20 15:39:49

3

試試這個:

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

免責聲明:我沒有使用psake,但我不知道爲什麼你需要周圍的變量,那麼多雙引號。如果在PowerShell腳本中執行上述命令,FWIW應該可以工作。

+0

GET ORF我的土地! ;-) +1 – x0n 2010-06-22 21:03:54

+1

現在你必須像鷹一樣觀察PowerShell標籤才能在邊緣獲得答案。 :-) – 2010-06-22 21:39:39

+0

這幾天我甚至都沒有回答這個問題:-(啊,還有'batch'標籤:-) – Joey 2010-06-22 22:26:13