Usando el comando de "inicio" con los parámetros pasados ??al programa iniciado

StackOverflow https://stackoverflow.com/questions/154075

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo una máquina virtual en Virtual PC 2007.

Para iniciarlo desde el escritorio, tengo el siguiente comando en un archivo por lotes:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

Pero eso deja un indicador de DOS en la máquina host hasta que la máquina virtual se apaga, y salgo de la consola de Virtual PC. Eso es molesto.

Así que cambié mi comando para usar el comando START, en su lugar:

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

Pero se ahoga con los parámetros pasados ??a Virtual PC.

START /? indica que los parámetros sí van en esa ubicación. ¿Alguien ha usado START para iniciar un programa con múltiples argumentos en la línea de comandos?

¿Fue útil?

Solución

START tiene una peculiaridad que incluye comillas dobles alrededor del primer parámetro. Si el primer parámetro tiene comillas dobles, lo utiliza como el TÍTULO opcional para la nueva ventana.

Creo que lo que quieres es:

start "" "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch

En otras palabras, dale un título vacío antes del nombre del programa para falsificarlo.

Otros consejos

En lugar de un archivo por lotes, puede crear un acceso directo en el escritorio.

Establezca el objetivo en:

"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch

y ya está todo listo. Dado que no está iniciando un indicador de comandos para iniciarlo, no habrá un cuadro de DOS.

Los espacios son problemas de DOS / CMD, por lo que debe ir a la ruta a través de:

cd "c:\program files\Microsoft Virtual PC"

y luego simplemente inicie VPC a través de:

start Virtual~1.exe -pc MY-PC -launch

~ 1 significa el primer exe con " Virtual " al principio. Entonces, si hay un " Virtual PC.exe " y un " Virtual PC1.exe " el primero sería Virtual ~ 1.exe y el segundo Virtual ~ 2.exe y así sucesivamente.

O use un VNC-Client como VirtualBox.

La respuesta en " peculiaridad " Es correcto y responde directamente a la pregunta. Como TimF respondió, dado que el primer parámetro está entre comillas, se trata como un título de ventana.

También tenga en cuenta que las opciones de Virtual PC se tratan como opciones para el comando 'start' en sí, y no son válidas para 'start'. Esto es cierto para todas las versiones de Windows que tienen el comando 'iniciar'.

Este problema con el 'inicio' de tratar el parámetro citado como un título es aún más molesto que solo el problema publicado. Si ejecuta esto:

start "some valid command with spaces"

Obtendrá una nueva ventana de símbolo del sistema, con el resultado obvio de un título de ventana. Aún más molesto, esta nueva ventana no hereda la fuente, los colores o el tamaño de la ventana personalizados, es solo el valor predeterminado para cmd.exe.

Si debe usar comillas dobles en cualquier parámetro, puede obtener el error " 'c: \ somepath' no se reconoce como un comando interno o externo, un programa operable o un archivo por lotes " ;. Sugiero la siguiente solución cuando se utiliza la marca de doble cita: https://stackoverflow.com/a/43467194/3835640

Puede usar comillas utilizando [ / D " Ruta " ] use / D solo para especificar la ruta y no la ruta + programa. Parece que todo el código en la misma línea que sigue vuelve a la normalidad, lo que significa que no necesita separar la ruta y el archivo.

    start  /D "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

o:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE

iniciará IE con la página web predeterminada.

    start  /D "TITLE" "C:\Program Files\Internet Explorer\" IEXPLORE.EXE www.bing.com

comienza con Bing, pero no restablece tu página de inicio.

/ D significa " directorio " y usar comillas está bien!

EJEMPLO INCORRECTO:

    start  /D "TITLE" "C:\Program Files\Internet Explorer\IEXPLORE.EXE"

da:

  

ERROR " El directorio actual no es válido. "

/ D solo debe ir seguido de una ruta de directorio. Luego, el espacio y el archivo por lotes o el programa que desea iniciar / ejecutar

Probado y funciona bajo XP, pero Windows Vista / 7/8 puede necesitar algunos ajustes en UAC.

-Mrbios

Ninguna de estas respuestas funcionó para mí.

En cambio, tuve que usar el comando Llamar:

Call "\\Path To Program\Program.exe" <parameters>

No estoy seguro de que esto realmente espere a completarse ... el C ++ Redistributable que estaba instalando fue lo suficientemente rápido como para que no importara

Si desea pasar un parámetro y su archivo .exe en la carpeta de prueba de c: drive

start " parámetro " " C: \ test \ test1.exe " -pc My Name-PC -launch

Si no quieres pasar el parámetro y tu archivo .exe en la carpeta de prueba de c: drive

start " " " C: \ test \ test1.exe " -pc My Name-PC -launch

Si no desea pasar el parámetro y su archivo .exe en la carpeta de prueba de la unidad H: (cualquier otra)

start " " " H: \ test \ test1.exe " -pc My Name-PC -launch

" / b " parámetro

start / b " " " c: \ archivos de programa \ Microsoft Virtual PC \ Virtual PC.exe " -pc " MY-PC " -launch

Cambiar el " Virtual PC.exe " a un nombre sin espacio como " VirtualPC.exe " en la carpeta. Cuando escribe iniciar " ruta " con " " el CMD inicia una nueva ventana de cmd con la ruta como título. Cambie el nombre a un nombre sin espacio, escríbalo en el Bloc de notas y luego guárdelo como Name.cmd o Name.bat:

CD\
CD Program Files
CD Microsoft Virtual PC
start VirtualPC.exe
timeout 2
exit

Este comando redirigirá el CMD a la carpeta, iniciará VirualPC.exe, esperará 2 segundos y saldrá.

has intentado:

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" "-pc MY-PC -launch"

?

Coloque el comando dentro de un archivo por lotes y llámelo con los parámetros.

También, ¿probaste esto todavía? (Mover la cita final para encapsular los parámetros)

start "c:\program files\Microsoft Virtual PC\Virtual PC.exe -pc MY-PC -launch"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top