windows cmd command prompt

windows - Comando para ejecutar un archivo.bat



cmd command (4)

Estoy tratando de hacer que mi script de compilación de Visual Studio ejecute un archivo .bat que haga algo importante.

Esto es lo que quiero hacer ahora:

cd "F:/- Big Packets -/kitterengine/Common/" Template.bat

Pero no funciona.

Tengo que hacer esto para que funcione:

cd "F:/- Big Packets -/kitterengine/Common/" F: Template.bat

Pero esto es bastante difícil de agregar al script de Visual Studio.

¿Cómo puedo hacer esto en una sola línea?


Hay muchas posibilidades para resolver esta tarea.

1. EJECUTE el archivo por lotes con la ruta completa

La solución más fácil es ejecutar el archivo por lotes con la ruta completa.

"F:/- Big Packets -/kitterengine/Common/Template.bat"

Una vez que se alcanza el final del archivo por lotes Template.bat , no hay retorno al script anterior en caso de que la línea de comando anterior esté dentro de un archivo * .bat o * .cmd.

El directorio actual para el archivo por lotes Template.bat es el directorio actual del proceso actual. En el caso de Template.bat requiere que el directorio de este archivo por lotes sea el directorio actual, el archivo por lotes Template.bat debe contener después de @echo off como segunda línea la siguiente línea de comando:

cd /D "%~dp0"

Ejecutar en una ventana de símbolo del sistema cd /? para mostrar la ayuda de este comando que explica el parámetro /D ... cambie al directorio especificado también en una unidad diferente.

Ejecutar en una ventana de símbolo del sistema call /? para que se muestre la ayuda de este comando utilizado también en la solución 2., 4. y 5. y explicando también %~dp0 ... unidad y ruta del argumento 0, que es el nombre del archivo por lotes.

2. LLAME al archivo por lotes con la ruta completa

Otra solución es llamar al archivo por lotes con la ruta completa.

call "F:/- Big Packets -/kitterengine/Common/Template.bat"

La diferencia con la primera solución es que, una vez alcanzado el archivo por lotes Template.bat el procesamiento por lotes continúa en un script por lotes que contiene esta línea de comando.

Para el directorio actual lea más arriba.

3. Cambie el directorio y ejecute el archivo por lotes con una línea de comando

Hay 3 operadores para ejecutar múltiples comandos en una línea de comando: & , && y || .
Para obtener más información, consulte la respuesta en una sola línea con múltiples comandos utilizando el archivo por lotes de Windows

Sugiero para esta tarea el operador && .

cd /D "F:/- Big Packets -/kitterengine/Common" && Template.bat

Como en la primera solución, no hay retorno al script actual si este es un archivo * .bat o * .cmd y el cambio del directorio y la continuación del procesamiento por lotes en Template.bat es exitoso.

4. Cambie el directorio y llame al archivo por lotes con una línea de comando

Esta línea de comando cambia el directorio y, en caso de éxito, llama al archivo por lotes.

cd /D "F:/- Big Packets -/kitterengine/Common" && call Template.bat

La diferencia con la tercera solución es el retorno al script por lotes actual al salir del procesamiento de Template.bat .

5. Cambie el directorio y el archivo por lotes CALL manteniendo el entorno actual con una línea de comando

Las cuatro soluciones anteriores cambian el directorio actual y se desconoce qué hace Template.bat respecto a

  1. directorio actual
  2. Variables de entorno
  3. estado de extensiones de comando
  4. estado de expansión demorada

En caso de que sea importante mantener el entorno del script * .bat o * .cmd actual sin modificaciones por cualquier cambio de Template.bat en el entorno, es aconsejable usar setlocal y endlocal .

Ejecutar en una ventana de símbolo del sistema setlocal /? y endlocal /? para mostrar la ayuda de estos dos comandos. Y lea la respuesta en el comando de cambio de directorio cd ... no funciona en el archivo por lotes después de la instalación de npm explicando más detalladamente lo que hacen estos dos comandos.

setlocal & cd /D "F:/- Big Packets -/kitterengine/Common" & call Template.bat & endlocal

Ahora solo se usa & lugar de && ya que es importante aquí que después de ejecutar setlocal el comando endlocal finalmente también se ejecute.

UNA NOTA MÁS

Si el archivo por lotes Template.bat contiene la exit del comando sin parámetro /B y este comando realmente se ejecuta, el proceso del comando siempre se cierra independientemente de la jerarquía de llamada. Así que asegúrese de que Template.bat contenga exit /B o goto :EOF lugar de simplemente exit si hay una exit utilizada en este archivo por lotes.



Puede usar el comando Cmd para ejecutar un archivo por lotes.

Aquí está mi camino =>

cmd /c ""Full_Path_Of_Batch_Here.cmd" "

Más información => cmd /?


"F:/- Big Packets -/kitterengine/Common/Template.bat" puede ser precedido por call (ver call /? ). O Cd /d "F:/- Big Packets -/kitterengine/Common/" & Template.bat .

CMD Cheat Sheet

  • Cmd.exe

  • Obteniendo ayuda

  • Puntuación

  • Nombrar archivos

  • Programas de inicio

  • Llaves

CMD.exe

Lo primero que debe recordar es una forma de operar una computadora. Es la forma en que lo hicimos antes de que WIMP (Windows, iconos, mouse, menús emergentes) se volviera común. Debe sus raíces a CPM, VMS y Unix. Se utilizó para iniciar programas y copiar y eliminar archivos. También puede cambiar la hora y la fecha.

Para obtener ayuda sobre cómo iniciar CMD, escriba cmd /? . Debe iniciarlo con el /k o /c menos que solo desee escribirlo.

Obteniendo ayuda

Para ayuda general. Escriba Help en el símbolo del sistema. Para cada comando enumerado, escriba help <command> (por ejemplo, help dir ) o <command> /? (por ejemplo, dir /? ).

Algunos comandos tienen subcomandos. Por ejemplo schtasks /create /? .

La ayuda del comando NET es inusual. Escribiendo net use /? Es una breve ayuda. Escriba net help use para obtener ayuda completa. Lo mismo se aplica en la raíz - net /? También es una ayuda breve, use net help .

Las referencias en la Ayuda al nuevo comportamiento describen cambios de CMD en OS / 2 y Windows NT4 a la CMD actual que está en Windows 2000 y versiones posteriores.

WMIC es un comando multipropósito. Escriba wmic /? .

Puntuación

& seperates commands on a line. && executes this command only if previous command''s errorlevel is 0. || (not used above) executes this command only if previous command''s errorlevel is NOT 0 > output to a file >> append output to a file < input from a file 2> Redirects command error output to the file specified. (0 is StdInput, 1 is StdOutput, and 2 is StdError) 2>&1 Redirects command error output to the same location as command output. | output of one command into the input of another command ^ escapes any of the above, including itself, if needed to be passed to a program " parameters with spaces must be enclosed in quotes + used with copy to concatenate files. E.G. copy file1+file2 newfile , used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,, %variablename% a inbuilt or user set environmental variable !variablename! a user set environmental variable expanded at execution time, turned with SelLocal EnableDelayedExpansion command %<number> (%1) the nth command line parameter passed to a batch file. %0 is the batchfile''s name. %* (%*) the entire command line. %CMDCMDLINE% - expands to the original command line that invoked the Command Processor (from set /?). %<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file. // (//servername/sharename/folder/file.ext) access files and folders via UNC naming. : (win.ini:streamname) accesses an alternative steam. Also separates drive from rest of path. . (win.ini) the LAST dot in a file path separates the name from extension . (dir ./*.txt) the current directory .. (cd ..) the parent directory //?/ (//?/c:/windows/win.ini) When a file path is prefixed with //?/ filename checks are turned off.

Nombrar archivos

< > : " / / | Reserved characters. May not be used in filenames. Reserved names. These refer to devices eg, copy filename con which copies a file to the console window. CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9 CONIN$, CONOUT$, CONERR$ -------------------------------- Maximum path length 260 characters Maximum path length (//?/) 32,767 characters (approx - some rare characters use 2 characters of storage) Maximum filename length 255 characters

Comenzando un programa

Ver start /? y call /? para ayuda en las tres formas.

Hay dos tipos de programas de Windows: consola o no consola (a estos se les llama GUI, incluso si no tienen uno). Los programas de consola se conectan a la consola actual o Windows crea una nueva consola. Los programas GUI tienen que crear explícitamente sus propias ventanas.

Si no se proporciona una ruta completa, Windows busca

  1. El directorio desde el que se cargó la aplicación.

  2. El directorio actual para el proceso padre.

  3. Windows NT / 2000 / XP: el directorio del sistema de Windows de 32 bits. Use la función GetSystemDirectory para obtener la ruta de este directorio. El nombre de este directorio es System32.

  4. Windows NT / 2000 / XP: el directorio de sistema de Windows de 16 bits. No hay ninguna función que obtenga la ruta de este directorio, pero se busca. El nombre de este directorio es Sistema.

  5. El directorio de Windows. Use la función GetWindowsDirectory para obtener la ruta de este directorio.

  6. Los directorios que se enumeran en la variable de entorno PATH.

Especifique un nombre de programa

Esta es la forma estándar de iniciar un programa.

c:/windows/notepad.exe

En un archivo por lotes, el lote esperará a que el programa salga. Cuando se escribe, el símbolo del sistema no espera a que salgan los programas gráficos.

Si el programa es un archivo por lotes, el control se transfiere y el resto del archivo por lotes que realiza la llamada no se ejecuta.

Usar el comando de inicio

Start inicia programas de formas no estándar.

start "" c:/windows/notepad.exe

Start inicia un programa y no espera. Los programas de consola comienzan en una nueva ventana. El uso del modificador /b fuerza los programas de consola en la misma ventana, lo que niega el objetivo principal de Inicio.

Inicio utiliza el shell gráfico de Windows, lo mismo que escribir en WinKey + R (cuadro de diálogo Ejecutar). Tratar

start shell:cache

También los nombres de programas registrados en HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/App Paths también se pueden escribir sin especificar una ruta completa.

También tenga en cuenta que el primer conjunto de citas, si corresponde, DEBE ser el título de la ventana.

Usar comando de llamada

La llamada se usa para iniciar archivos por lotes y esperar a que salgan y continúen el archivo por lotes actual.

Otros nombres de archivo

Escribir un nombre de archivo que no sea de programa es lo mismo que hacer doble clic en el archivo.

Llaves

Ctrl + C sale de un programa sin salir de la ventana de la consola.

Para otras teclas de edición, escriba Doskey /? .

  • y comandos de recuperación

  • ESC borra la línea de comando

  • F7 muestra el historial de comandos

  • ALT + F7 borra el historial de comandos

  • F8 busca el historial de comandos

  • F9 selecciona un comando por número

  • ALT + F10 borra las definiciones de macro

Tampoco listado

  • Ctrl + o Mueve una palabra a la vez

  • Ctrl + Retroceso Elimina la palabra anterior

  • Inicio Comienzo de línea

  • Fin Fin de línea

  • Ctrl + Fin Elimina al final de la línea