Estou tentando executar um comando cmd.exe
, com uma quebra de linha ou nova linha como parte do comando, como abaixo:
command -option:text
whatever
Mas toda nova linha executa o comando, em vez de continuar o comando na próxima linha.
Então, como posso inserir um novo caractere de linha ou criar um comando de várias linhas no cmd.exe?
windows
command-line
newlines
rudimentador
fonte
fonte
Respostas:
Use o
^
personagem como uma fuga:Suponho que você esteja usando o cmd.exe do Windows XP ou similar. Este não é o DOS real. Se você estiver usando o DOS (MS-DOS, Win3.1, Win95, Win98, WinME) real, não acredito que haja uma fuga para novas linhas. Você precisaria executar um shell personalizado. O cmd.exe solicitará "Mais?" cada vez que você pressionar enter com a
^
no final da linha, basta pressionar enter novamente para escapar / incorporar uma nova linha.fonte
SHUTDOWN.EXE
comando. Acabei usando algo assim:shutdown -s -t 900 -c "foo bar"^
> Mais?"baz"^
> Mais?"test that."
Funcionou.Use os códigos Alt com o teclado numérico
Esse caractere de avanço de linha pode ser inserido como um código Alt na CLI usando o teclado numérico: com o NumLock ativado, mantenha pressionada a tecla ALT e digite 10 no teclado numérico antes de liberá-la. Se você também precisar do CR, digite ambos com Alt + 13 e Alt + 10:
♪◙
Nota: isso não funcionará em um arquivo em lotes.
Exemplo de caso de uso:
Você está tentando ler as variáveis de ambiente% PATH% ou% CLASSPATH% para obter uma visão geral rápida do que existe e em que ordem - mas a parede de texto
path
retornada é ilegível. Então é algo que você pode digitar rapidamente:Editar:
Adicionada a
>con
solução alternativa que Brent Rittenhouse descobriu para versões mais recentes do cmd.exe, onde o método original havia parado de funcionar.fonte
e2 99 aa e2 97 99
passando. Algum tipo de ponto de código unicode? Eu vejo os caracteres entrando na linha de comando. Alguma sugestão?Use legacy console
caixa de seleção. Mas parece muito ruim em um monitor de alta resolução.(echo New-line detected rigghhhtt ◙^<--- HERE!) > CON
Os parênteses ao redor são opcionais. Aqui está um exemplo mais robusto do que você pode fazer com isso (retornos de carro AND que agora funcionam e de forma totalmente independente!): I.imgur.com/qqN37PH.pngNão sei se isso funcionará para você, mas colocando & echo (o seguinte espaço é importante). entre cada afirmação que você deseja em uma nova linha. Eu só tentei isso com um simples arquivo bat de
Em seguida, salve isso como testNewLines.bat
Então a linha cmd
Resultou no seguinte eco de volta
primeira linha
segunda linha
terceira linha
fonte
Expandindo a resposta de Amit ( /superuser//a/1132659/955256 ) Encontrei uma maneira de fazer isso em qualquer fonte SEM usar o console herdado.
Tudo o que você precisa fazer é simplesmente ecoar a linha com caracteres alt-10 e, em seguida, redirecioná-la para
con
e funcionará!Por exemplo, dado:
edit: Curiosidade, parece que você pode colocar o redirecionamento no início da seguinte maneira:
Estranho, não é?
Você obterá uma saída de:
(Os parênteses ao redor são opcionais.)
Aqui está um exemplo mais robusto do que você pode fazer com esse retorno de carro AND, que agora funciona e de forma totalmente independente!
O melhor de tudo é que isso funcionará se você redirecionar para um arquivo também!
(simplesmente mude
> CON
para> desired_output_file.txt
Desfrutar!
fonte
A saída de ^ é salvável
exemplo:
; resultado:
fonte
Eu acredito que você não pode fazer isso a partir do
cmd.exe
shell do Windows . ( É não DOS. )Você não precisa de um "shell personalizado" completo para isso. Você só precisará escrever algo como isto (exemplo em Python ):
Ou Ruby:
Veja, não é tão difícil.
fonte