Estoy tratando de ejecutar un comando cmd.exe
, con un salto de línea o una nueva línea como parte del comando, como a continuación:
command -option:text
whatever
Pero cada nueva línea ejecuta el comando, en lugar de continuar el comando en la siguiente línea.
Entonces, ¿cómo puedo ingresar un nuevo carácter de línea o crear un comando de varias líneas en cmd.exe?
windows
command-line
newlines
rudimenter
fuente
fuente
Respuestas:
Usa el
^
personaje como un escape:Supongo que está utilizando cmd.exe de Windows XP o similar. Esto no es DOS real. Si está utilizando DOS real (MS-DOS, Win3.1, Win95, Win98, WinME), entonces no creo que haya un escape para las nuevas líneas. Tendría que ejecutar un shell personalizado. cmd.exe le pedirá "¿Más?" cada vez que presione enter con un
^
al final de la línea, simplemente presione enter nuevamente para escapar / incrustar una nueva línea.fuente
SHUTDOWN.EXE
comando. Terminé usando algo como esto:shutdown -s -t 900 -c "foo bar"^
> ¿Más?"baz"^
> Más?"test that."
Funcionó.Use códigos Alt con el teclado numérico
El carácter de avance de línea se puede ingresar como un código Alt en la CLI usando el teclado numérico: con NumLock activado, mantenga presionada la tecla ALT y escriba 10 en el teclado numérico antes de liberar ALT. Si también necesita el CR, escríbalos con Alt + 13 y luego Alt + 10:
♪◙
Nota: esto no funcionará en un archivo por lotes.
Caso de uso de muestra:
Está intentando leer las variables de entorno% PATH% o% CLASSPATH% para obtener una visión general rápida de lo que hay y en qué orden, pero el muro de texto que se
path
devuelve es ilegible. Entonces esto es algo que puede escribir rápidamente:Editar:
Se agregó la
>con
solución alternativa que Brent Rittenhouse descubrió para las versiones más recientes de cmd.exe, donde el método original había dejado de funcionar.fuente
e2 99 aa e2 97 99
pasado. ¿Algún tipo de punto de código Unicode? Sin embargo, veo que los personajes entran en la línea de comando. ¿Alguna sugerencia?Use legacy console
casilla de verificación. Pero se ve muy mal en un monitor de alta resolución.(echo New-line detected rigghhhtt ◙^<--- HERE!) > CON
los paréntesis circundantes son opcionales. Aquí hay un ejemplo más sólido de lo que puede hacer con esto (¡Y retornos de carro que ahora funcionan, y de forma completamente independiente!): I.imgur.com/qqN37PH.pngNo sé si esto funcionará para usted, pero poniendo & echo (el siguiente espacio es importante). entre cada declaración que desea en una nueva línea. Solo intenté esto con un simple archivo bat de
Luego lo guardé como testNewLines.bat
Entonces la línea cmd
Resultó que se hizo eco de lo siguiente
primera línea
segunda línea
Tercera línea
fuente
Ampliando la respuesta de Amit ( /superuser//a/1132659/955256 ) Encontré una manera de hacerlo en cualquier fuente SIN usar la consola heredada.
¡Todo lo que necesita hacer es simplemente repetir la línea con caracteres alt-10 y luego redirigirla
con
y funcionará!Por ejemplo, dado:
editar: Dato curioso, parece que puedes poner la redirección al principio de esta manera:
Extraño, ¿eh?
Obtendrá una salida de:
(Los paréntesis circundantes son opcionales).
¡Aquí hay un ejemplo más sólido de lo que puede hacer con este AND retornos de carro que ahora funciona, y de forma completamente independiente !:
Lo mejor de todo, ¡esto funciona si también redirige a un archivo!
(simplemente cambie
> CON
a> desired_output_file.txt
¡Disfrutar!
fuente
La salida de ^ se puede guardar
ejemplo:
; salida:
fuente
Creo que no puedes hacer eso desde el
cmd.exe
shell de Windows . ( Es no DOS. )No necesita un "shell personalizado" completo para eso. Solo necesitará escribir algo como esto (ejemplo en Python ):
O rubí:
Mira, no es tan difícil.
fuente