¿Cómo extendemos un comando a la siguiente línea?
básicamente cuál es la alternativa de Windows para Linux
ls -l \
/usr/
aquí usamos la barra invertida para extender el comando en la siguiente línea
¿Cuál es el equivalente para Windows?
¿Cómo extendemos un comando a la siguiente línea?
básicamente cuál es la alternativa de Windows para Linux
ls -l \
/usr/
aquí usamos la barra invertida para extender el comando en la siguiente línea
¿Cuál es el equivalente para Windows?
Respuestas:
Después de probar casi todas las teclas de mi teclado:
C:\Users\Tim>cd ^
Mehr? Desktop
C:\Users\Tim\Desktop>
Entonces parece ser la tecla ^.
En el símbolo del sistema de Windows, ^
se usa para escapar del siguiente carácter en la línea de comando. (Like \
se usa en cadenas). Los caracteres que deben usarse en la línea de comando tal como están deben tener un ^ prefijado, por eso funciona para la nueva línea.
Como referencia, los caracteres que necesitan escapar (si se especifican como argumentos de comando y no entre comillas) son: &|()
Entonces, el equivalente de su ejemplo de Linux sería (¿el más? Es un aviso):
C:\> dir ^
More? C:\Windows
Si vino aquí en busca de una respuesta a esta pregunta, pero no exactamente de la manera en que se refería el OP, es decir, ¿cómo consigue que funcione la CMD multilínea en una sola línea? Tengo una especie de respuesta peligrosa para usted.
Intentar usar esto con cosas que realmente usan tuberías, como por ejemplo, findstr
es bastante problemático. Lo mismo vale para tratar con el else
s. Pero si solo desea que un comando condicional de varias líneas se ejecute directamente desde CMD y no a través de un archivo por lotes, esto debería funcionar bien.
Digamos que tiene algo como esto en un lote que desea ejecutar directamente en el símbolo del sistema:
@echo off
for /r %%T IN (*.*) DO (
if /i "%%~xT"==".sln" (
echo "%%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file
echo Dumping SLN file contents
type "%%~T"
)
)
Ahora, podría usar el quilate de continuación de línea ( ^
) y escribirlo manualmente de esta manera, pero advirtiendo, es tedioso y si comete un error puede aprender la alegría de volver a escribir todo.
Bueno, no puede funcionar con sólo ^
gracias a escapar de los mecanismos dentro de paréntesis, encogimiento de hombros , al menos no como escrita. En realidad, debería duplicar los quilates de esta manera:
@echo off ^
More? for /r %T IN (*.sln) DO (^^
More? if /i "%~xT"==".sln" (^^
More? echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file^^
More? echo Dumping SLN file contents^^
More? type "%~T"))
En cambio, puede ser un scripter astuto sucio del lado equivocado de las pistas que no necesita quilates intercambiándolos por un solo tubo ( |
) por continuación de un bucle / expresión:
@echo off
for /r %T IN (*.sln) DO if /i "%~xT"==".sln" echo "%~T" is a normal SLN file, and not a .SLN.METAPROJ or .SLN.PROJ file | echo Dumping SLN file contents | type "%~T"