¿Cómo ejecuto los comandos cmd a través de un archivo por lotes?

90

Quiero escribir un archivo por lotes que hará las siguientes cosas en el orden dado:

  1. Abrir cmd
  2. Ejecute el comando cmd cd c:\Program files\IIS Express
  3. Ejecute el comando cmd iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
  4. Abra Internet Explorer 8 con URL =http://localhost:8088/default.aspx

Nota: La ventana de cmd no debe cerrarse después de ejecutar los comandos.

Intenté iniciar cmd.exe / k "cd \ & cd ProgramFiles \ IIS Express" , pero no está resolviendo mi propósito.

patel
fuente
6
cual es el problema al que te enfrentas?
argentum47

Respuestas:

110

Entonces, cree un archivo por lotes real: abra el bloc de notas, escriba los comandos que desea ejecutar y guárdelo como un .batarchivo. Luego haga doble clic en el archivo .bat para ejecutarlo.

Pruebe algo como esto para empezar:

c:\
cd c:\Program files\IIS Express
start iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
start http://localhost:8088/default.aspx
pause
Blorgbeard está fuera
fuente
1
gracias @Blorgbeard. está funcionando excepto la cuarta línea. no abre la URL dada.
patel
¿El navegador se abre en absoluto?
Blorgbeard sale
Oh, creo que sé lo que está pasando - mira mi edición, agregué "comenzar" antes de la iisexpresslínea.
Blorgbeard sale
@Blorgbeard, estoy probando tu enfoque "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --servicey no funciona. Cuando ejecuto esta línea en CMDtodo está bien. En ambos casos, lo ejecuto como administrador. Dime por favor, ¿qué hago mal?
Mike B.
4
@MikeB. starttoma el primer argumento entre comillas como título de la ventana. Pruebastart "" "C:\Program Files\MongoDB\Server\3.3\bin\mongod.exe" --install --dbpath=C:\data\db --logpath=C:\data\log\log.txt --auth --service
Stephan
24

Creo que la sintaxis correcta es:

cmd /k "cd c:\<folder name>"
argentum47
fuente
4
Muy buena opción '/ k'. De esta manera, incluso después de presionar CTRL + C, cmd no sale. Muchas gracias :-)
Pushpendra
16

Esto soluciona algunos problemas con la respuesta de Blorgbeard (pero no se ha probado):

@echo off
cd /d "c:\Program files\IIS Express"
start "" iisexpress /path:"C:\FormsAdmin.Site" /port:8088 /clr:v2.0
timeout 10
start http://localhost:8088/default.aspx
pause
foxidrive
fuente
8

La sintaxis del "comando" cmd / c funciona bien. Además, si desea incluir un ejecutable que contenga un espacio en la ruta, necesitará dos conjuntos de comillas.

cmd /c ""path to executable""

y si su ejecutable necesita una entrada de archivo con un espacio en la ruta, otro conjunto

cmd /c ""path to executable" -f "path to file"" 
Pies
fuente
6
@echo off
title Command Executer
color 1b

echo Command Executer by: YourNameHere
echo #################################
: execute
echo Please Type A Command Here:
set /p cmd=Command:
%cmd%
goto execute
Ethan
fuente
3
"¿Cómo ejecuto los comandos cmd a través de un archivo por lotes?" Je, técnicamente correcto.
Vivek Chavda
2
Técnicamente correcto ... sí ... pero también exactamente lo que necesita si está en una computadora de la escuela y el símbolo del sistema está deshabilitado, pero los archivos por lotes no lo están.
RetroCraft
He estado buscando esto, así que estoy feliz de que ha publicado esto a pesar de que no es lo que el PO quería :)
dandeto
1

cmd / k cd c: \ es la respuesta correcta

franco
fuente
cmd / k "cd <ruta donde se debe ejecutar cmd (por ejemplo, c: \ users \ desktop \ myFolder)> & <su comando (por ejemplo, pm2 start)>"
Techdive
1
start cmd /k "your cmd command1"
start cmd /k "your cmd command2"

Funciona en Windows server2012 mientras uso estos comandos en un archivo por lotes.

VictorLee
fuente
-8

Sé que el indicador de DOS y cmd NO TIENE GUSTO de espacios en los nombres de las carpetas. Tu código comienza con

cd c: \ Archivos de programa \ IIS Express

e intenta ir a c: \ Program en lugar de C: \ "Archivos de programa"

Cambie el nombre de la carpeta y el nombre * .exe. Espero que esto ayude

usuario7380371
fuente
¿Cambiar el nombre de la carpeta? Debes estar bromeando.
Werner Henze
1
correcto para cualquier comando que utilice parámetros con espacios, excepto cd . Es el único comando que conozco, que en realidad toma parámetros con espacios sin comillas.
Stephan
Cuando cambia "Archivos de programa" .... xD. Estoy de acuerdo con Werner. Esto es lo que sucede: Sus aplicaciones que las obras hardcodes la ubicación del archivo ya no, algunas funciones de sistema no funcione, que sistema se rompe