将Dos命令转换为Powershell命令

时间:2010-06-22 20:57:25

标签: powershell dos starteam psake

我正在使用PowerShell 2.0和Psake 1.4

这是我想要转换为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
请注意区域有三个引用的字符串。

以下是我的脚本属性和注释

$ 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

任务初始{
“在$ AppName上工作”
$ ErrorActionPreference ='停止'
}

任务GetSource -depends Init {
'从明星队获得灵魂'   正确使用调用?它应该是&,还是exec {}
invoke-item $ StarCommand }

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:4)

尝试:

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

我认为你正在使用PowerShell 2.0。 powershell的1.0版本有一个quirkier本地命令*参数解析方式。

  • native commands = exe,com,bat files等。

-Oisin

答案 1 :(得分:3)

试试这个:

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

免责声明:我没有使用psake,但我不确定为什么你需要围绕这些变量使用这么多双引号。 FWIW如果在PowerShell脚本中执行,则上述命令应该有效。