como estendemos um comando para a próxima linha?
basicamente, o que é a alternativa do Windows para Linux
ls -l \
/usr/
aqui usamos barra invertida para estender o comando na próxima linha
qual é o equivalente para o windows?
como estendemos um comando para a próxima linha?
basicamente, o que é a alternativa do Windows para Linux
ls -l \
/usr/
aqui usamos barra invertida para estender o comando na próxima linha
qual é o equivalente para o windows?
Respostas:
Depois de tentar quase todas as teclas do meu teclado:
C:\Users\Tim>cd ^
Mehr? Desktop
C:\Users\Tim\Desktop>
Então parece ser a chave ^.
No prompt de comando do Windows, ^
é usado para escapar do próximo caractere na linha de comando. (Like \
é usado em strings.) Os caracteres que precisam ser usados na linha de comando como devem devem ter um ^ prefixado, portanto é por isso que funciona para a nova linha.
Para referência, os caracteres que precisam ser escapados (se especificados como argumentos de comando e não entre aspas) são: &|()
Portanto, o equivalente ao seu exemplo de linux seria (o More? Sendo um prompt):
C:\> dir ^
More? C:\Windows
Se você veio aqui procurando uma resposta para essa pergunta, mas não exatamente da maneira que o OP significava, ou seja, como você faz o CMD de várias linhas trabalhar em uma única linha, eu tenho uma resposta perigosa para você.
Tentar usar isso com coisas que realmente usam tubulação, como dizer, findstr
é bastante problemático. O mesmo vale para lidar com else
s. Mas se você deseja que um comando condicional de várias linhas seja executado diretamente do CMD e não por meio de um arquivo em lotes, isso deve funcionar bem.
Digamos que você tenha algo assim em um lote que deseja executar diretamente no prompt de comando:
@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"
)
)
Agora, você pode usar o carat de continuação de linha ( ^
) e digitá-lo manualmente dessa maneira, mas aviso, é tedioso e, se você errar, pode aprender a alegria de digitar tudo novamente.
Bem, isso não vai funcionar com apenas ^
graças a escapar mecanismos dentro de parênteses shrug Pelo menos não como escrito. Você realmente precisaria dobrar os quilates da seguinte forma:
@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"))
Em vez disso, você pode ser um scripter sorrateiro e sujo do lado errado das faixas que não precisam de quilates, trocando-os por um único pipe ( |
) por continuação de um loop / expressão:
@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"