utiles trucos para hacks hackear ejemplos comandos bat basicos archivos command-line batch-file new-operator

command-line - trucos - comandos cmd



Archivo BAT: abre una nueva ventana de cmd e ingresa el código allí (6)

Es posible que ya encuentres tu respuesta porque hace algún tiempo preguntaste. Pero intenté hacer algo similar al codificar ror. Quería ejecutar "servidor de rieles" en una nueva ventana de cmd para no tener que abrir un nuevo cmd y luego encontrar mi camino de nuevo.

Lo que descubrí fue usar el interruptor K de esta manera:

start cmd /k echo Hello, World!

comience antes de que "cmd" abra la aplicación en una nueva ventana y "/ K" ejecutará "echo Hello, World!" después de que el nuevo cmd esté activo.

También puede usar el modificador / C para algo similar.

start cmd /C pause

Esto ejecutará "pausa" pero cerrará la ventana cuando el comando esté listo. En este caso después de presionar un botón. Encontré esto útil para "servidor de rieles", luego cuando apago mi servidor de desarrollo no tengo que cerrar la ventana después.

Todas

Estoy tratando de trabajar con un archivo .BAT aquí, debería ser un script muy simple, pero no sé cómo hacerlo (no estoy familiarizado con él).

Lo que intento hacer es abrir una nueva ventana de comando: start% windir% / system32 / cmd.exe

Y el código que escribo detrás de él (una impresión, por ejemplo) debería aparecer allí: echo "test in new window"

¿Cómo puedo hacer esto?

Así que necesito hacer algo de codificación en una NUEVA ventana de comando. ¿Puede alguien ayudarme con esto?

Saludos cordiales


Esto no es muy fácil.

El mejor enfoque es tener la parte de su script que desea que se ejecute en una "nueva ventana" para que esté en un archivo .bat por separado. Esto puede ser poco práctico si, por ejemplo, necesita mucho estado del resto de su secuencia de comandos (variables, etc.). Una opción es pasar cualquier valor que necesite (por ejemplo, dir para operar) al archivo por lotes:

start cmd.exe stuff.bat %this_dir%

Si tiene una gran cantidad de estado para transmitir, podría considerar generar un archivo por lotes en tiempo de ejecución:

set foo=Hello, World set list_me=%userprofile% set tmpdir=c:/windows/temp set tmp=%tmpdir%/tmp.foo del /q /f "%tmp%" echo.echo %foo%>>"%tmp%" echo.dir "%list_me%">>>"%tmp" start cmd.exe "%tmp%" del /q /f "%tmp%"

Obviamente, este es un ejemplo trivial.


Gracias a todos aquí en ; esta solución resuelve la pregunta anterior pero se extiende para ejecutar automáticamente estas tareas:

  1. Quiero ejecutar mi servidor de rieles
  2. Ejecutar un rake de trabajos: trabajador para mi gema delayed_job también
  3. y Abrir el navegador de internet predeterminado para mostrar mi página
  4. finalmente, para dejar una ventana de cmd abierta para cualquier comando adicional durante mi sesión.

Creo que mi proyecto se llama "antiquorum".

Cree un archivo "init.bat" en su directorio % USERPROFILE% (abra una ventana de cmd y eche un vistazo a la ruta a la izquierda del cursor para saber qué% USERPROFILE% es)

@echo off cd C:/projects/rails3/antiquorum if "%1" == "antiquorum" GOTO start if "%1" == "worker" GOTO worker if "%1" == "server" GOTO server if "%1" == "" GOTO end :start start cmd /k %USERPROFILE%/init.bat worker start cmd /k %USERPROFILE%/init.bat server TIMEOUT 30 start "" "http://localhost:3000/" GOTO end :server rails s GOTO end :worker rake jobs:work :end

En una nueva ventana de línea de comandos escriba: C:> init antiquorum

El código abre dos ventanas más cmd y un navegador. TIMEOUT evita errores en el navegador.

La sección : inicio hace el trabajo. Puede ejecutar tareas 1,2 o 4 por separado escribiendo params como: servidor , trabajador o ninguno para dejar un cmd abierto en la raíz del proyecto "antiquorum" .

Disfrutar.


Las respuestas anteriores me ayudaron. Pero aún así se requiere algo de entendimiento. Aquí hay un script de ejemplo que uso para iniciar 3 procesos para el desarrollo web. Resulta en 3 ventanas que permanecen abiertas, ya que necesitan ejecutarse continuamente.

Mongo se agrega globalmente a mi camino, por lo que no necesito copiar como lo hago para los otros dos programas. Por supuesto, la ruta a sus archivos variará, pero espero que esto ayude.

:: Start MongoDB start cmd.exe /k "mongod" :: cd app directory, and start it cd my-app start cmd.exe /k "npm run dev" :: cd to api server, and start that cd ../my-app-api start cmd.exe /k "npm run dev"


Si entiendo que estás haciendo esto correctamente, tu archivo bat abrirá el símbolo del sistema e imprimirá tu mensaje en la pantalla.

cmd.exe hello world

espero que esto ayude.


Use lo siguiente en su archivo por lotes:

start cmd.exe /k "more-batch-commands-here"

o

start cmd.exe /c "more-batch-commands-here"

/ c Realiza el comando especificado por string y luego termina
/ k Realiza el comando especificado por una cadena pero permanece

Consulte la documentación de cmd.exe usando cmd /? para más detalles.

El formateo correcto de la cadena de comandos se vuelve un poco más complicado con espacios en los argumentos. Vea los ejemplos a continuación. Tenga en cuenta el uso de comillas dobles anidadas en algunos ejemplos.

Ejemplos:

Ejecute un programa y pase un parámetro de nombre de archivo:
CMD /c write.exe c:/docs/sample.txt

Ejecute un programa y pase un nombre de archivo largo:
CMD /c write.exe "c:/sample documents/sample.txt"

Espacios en la ruta del programa:
CMD /c ""c:/Program Files/Microsoft Office/Office/Winword.exe""

Espacios en la ruta del programa + parámetros:
CMD /c ""c:/Program Files/demo.cmd"" Parameter1 Param2
CMD /k ""c:/batch files/demo.cmd" "Parameter 1 with space" "Parameter2 with space""

Inicie demo1 y demo2:
CMD /c ""c:/Program Files/demo1.cmd" & "c:/Program Files/demo2.cmd""

Fuente: ss64.com/nt/cmd.html