La conversión de comandos de DOS a comando de PowerShell
-
29-09-2019 - |
Pregunta
Estoy trabajando con PowerShell 2.0 con 1.4 Psake
Aquí está el DOS comando que se está ejecutando que quiero convertir a 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"
Tenga en cuenta que la ruta de acceso a STCMD tiene un espacio en él
Tenga en cuenta que hay una: entre Barney: Dinno
Advertencia Hay zona de tres cadenas entre comillas.
Aquí están mis propiedades del script y notas
$ AppName = "MySolution"
$ StarExe = "C: \ Archivos de programa \ Borland \ StarTeam 2005 R2 \ stcmd.exe"
$ StarProject = "rubble.barney: Dinno @ hostname: 4455 / $ AppName / aplicación web"
$ StarOutDir = "D: \ FooBar \ $ AppName \ Source"
$ StarCommand = "" "$ StarExe" "co -p "" $ StarProject "", es -nologo -q -fp "" $ StarOutDir """
predeterminado tarea -depends getSource
tarea Init {
"Trabajo sobre $ AppName"
$ = ErrorActionPreference de búsqueda: 'Stop'
}
tarea getSource -depends Init {
'Obtener Soure De Star Team'
correcta de utilizar invocación? ¿Debería ser y, o exec {}
Invoke-elemento $ StarCommand
}
Cualquier ayuda sería impresionante.
Solución
Trate:
& $starexe co -p $StarProject -is -nologo -q -fp $StarOutDir
supongo que está utilizando PowerShell 2.0. La versión 1.0 de PowerShell tenían comando * análisis de argumentos manera más peculiares nativa.
- comandos nativos = exe, com, bat, etc.
-Oisin
Otros consejos
Prueba esto:
& $StarExe co -p $StarProject -is -nologo -q -fp $StarOutDir
exención de responsabilidad: No he utilizar psake pero no estoy seguro de por qué necesita tantas comillas dobles alrededor de las variables. Fwiw el comando anterior debería funcionar si se ejecuta en una secuencia de comandos de PowerShell.