转换DOS命令到Power Shell命令

问题描述:

我使用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 }

任何帮助将是真棒。

尝试:

& $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

试试这个:

& $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