¿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.


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

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>"

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

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"" 

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

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


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.


-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


¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.