cmd.exe 명령에 줄 바꿈을 어떻게 삽입합니까?


23

cmd.exe아래 에서처럼 명령의 일부로 줄 바꿈 또는 줄 바꿈 을 사용하여에 명령을 실행하려고 합니다.

command -option:text  
whatever

그러나 모든 새로운 줄은 다음 줄에서 명령을 계속하는 대신 명령을 실행합니다.

어떻게 새 줄 문자를 입력하거나 cmd.exe에서 여러 줄 명령을 만들 수 있습니까?



답변:


19

^이스케이프 문자를 사용하십시오 :

command -option:text^

whatever

Windows XP 또는 유사한에서 cmd.exe를 사용한다고 가정합니다. 이것은 실제 DOS가 아닙니다. 실제 DOS (MS-DOS, Win3.1, Win95, Win98, WinME)를 사용하는 경우 줄 바꿈에 대한 탈출구가 없다고 생각합니다. 사용자 정의 쉘을 실행해야합니다. cmd.exe가 "More?"를 묻는 메시지를 표시합니다 ^줄 끝에서 Enter 키를 누를 때마다 Enter 키를 다시 누르면 실제로 줄 바꿈을 피할 수 있습니다.


너무 시원하다, 나는 그것을 몰랐다.
TJ Crowder 2016 년

1
이것이 제안하는 것은 줄 바꿈에 더 많은 텍스트를 입력 할 수 있다는 것입니다. 개행을 유지하지 않습니다. 내가 원하는 것은 "텍스트"와 "무엇이든"사이에 개행 문자가 있다는 것입니다. "text \ nwhatever"
초보자

나는 당신이 그것을하기 위해 두 개의 줄 바꿈을 사용해야한다고 생각합니다. 원래 게시물에서 이것을 깨닫지 못해서 (지금 편집되었습니다)
Darth Android

1
텍스트에 공백이 있으면 따옴표로 묶어야합니다. 또한 끝 따옴표를 포함해야합니다. 그렇지 않으면 캐럿이 이스케이프 문자로 무시되고 텍스트처럼 처리됩니다. 마지막으로 공백이 포함 된 각 줄에서 텍스트 주위에 따옴표를 붙여야합니다 (안전하게 공백이 포함되어 있지 않더라도). 계속되는 각 줄에 대해 닫는 따옴표 뒤에 캐럿을 추가해야합니다.
Synetech

1
나는 SHUTDOWN.EXE명령 의 주석에 줄 바꿈을 넣는 방법을 찾으려고 노력했다 . 나는 다음과 같은 것을 사용하게되었습니다 : shutdown -s -t 900 -c "foo bar"^ > More? "baz"^ > 더? "test that."효과가있었습니다.
Synetech

4

숫자 키패드와 함께 Alt 코드 사용

C:\>ver

Microsoft Windows [Version 6.3.9600]

C:\>echo Line1◙Line2 >con
Line1
Line2

C:\>

해당 행 피드 문자는 숫자 키패드를 사용하여 CLI 에서 Alt 코드 로 입력 할 수 있습니다 . NumLock을 켜고 ALT를 해제하기 전에 ALT를 누른 상태에서 숫자 키패드에서 10을 입력하십시오. CR도 필요한 경우 Alt + 13과 Alt + 10을 함께 입력하십시오.♪◙

참고 : 이것은 배치 파일에서 작동하지 않습니다.

샘플 사용 사례 :

% PATH % 또는 % CLASSPATH % 환경 변수를 읽으면서 현재 상태와 순서를 간략히 살펴 보려고하지만 path반환 되는 텍스트의 벽을 읽을 수 없습니다. 그런 다음 빠르게 입력 할 수 있습니다.

echo %path:;=◙% >con

편집하다:

>conBrent Rittenhouse가 원래 방법이 작동을 멈춘 새로운 버전의 cmd.exe에 대해 발견 한 해결 방법을 추가 했습니다.


이것은 나를 위해 작동하지 않는 것 같습니다. 나는 e2 99 aa e2 97 99통과로 끝납니다 . 어떤 종류의 유니 코드 코드 포인트? 커맨드 라인에 문자가 들어가는 것을 볼 수 있습니다. 어떤 제안?
Brad

@Brad Windows 10의 새로운 cmd.exe에서 더 이상 작동하지 않는 것으로 확인되어 이전 Windows 7 상자조차 더 이상이 방식으로 작동하지 않습니다.
Amit Naidu

기묘한! 나는 .... 뭔가에서 오래 cmd.exe를을 발굴 할 수 있는지 궁금
브래드

@Brad, 방금 시도한 것이 거의 없으며 Lucida 및 True Type 글꼴 대신 콘솔 속성에서 Raster Fonts로 전환하고 확인란을 Use legacy console선택 하면 오래된 동작을 얻을 수 있음을 깨달았습니다 . 그러나 고해상도 모니터에서는 정말 좋지 않습니다.
Amit Naidu

1
실제로, 나는 이것을 모든 글꼴로 완벽하게 작동하는 솔루션을 찾았다 고 생각합니다! 단순히 alt-10 문자로 줄을 에코 한 다음 CON으로 리디렉션하면 작동합니다! 예를 들면 다음과 같습니다 (echo New-line detected rigghhhtt ◙^<--- HERE!) > CON. 주변 괄호는 선택 사항입니다. 여기에 당신이 무엇을 할 수의보다 강력한 예이다 (완전히 독립적으로 캐리지 리턴하는 지금 일을하고!) : i.imgur.com/qqN37PH.png
브렌트 리튼 하우스

1

이것이 효과가 있는지 모르겠지만 & echo를 넣으면 다음과 같은 공간이 중요합니다. 새 줄에서 원하는 각 문 사이에 나는 간단한 박쥐 파일로 이것을 시도했다.

echo %1

그런 다음 testNewLines.bat로 저장하십시오.

그럼 cmd 줄

testNewLines first line&echo Second Line&echo Third line

결과는 다음과 같습니다.

첫 번째 줄
두 번째 줄
세 번째 줄


1

Amit의 답변을 확장 ( /superuser//a/1132659/955256 ) 레거시 콘솔을 사용하지 않고 모든 글꼴로이를 수행하는 방법을 찾았습니다.

당신이해야 할 일은 단순히 alt-10 문자로 줄을 에코 한 다음 리디렉션하여 con작동하면됩니다!

예를 들면 다음과 같습니다.

(echo New-line이 rigghhhtt를 감지했습니다 ◙ ^ <--- HERE!)> CON

편집 : 재미있는 사실, 처음에 리디렉션을 다음과 같이 넣을 수있는 것 같습니다.

> CON echo 줄 바꾸기 감지 detected ^ <--- 여기!

이상해?

다음과 같은 결과가 나타납니다.


New-line detected rigghhhtt  
<-- HERE!

주변 괄호는 선택 사항입니다.

다음 은이 AND 캐리지 리턴으로 수행 할 수있는 작업에 대한보다 강력한 예입니다.

무엇보다도 파일로 리디렉션하면 작동합니다!
(단순히 변경 > CON> desired_output_file.txt

즐겨!


1

^의 출력을 저장할 수 있습니다

set br= ^
<</br (newline)>>
<</br>>

예:

@echo off
setlocal enableExtensions enableDelayedExpansion
rem cd /D "%~dp0"


rem //# need 2 [/br], can't be saved to a var. by using %..%;
set br= ^



set "t=t1!br!t2!br!t3"

for /f "tokens=* delims=" %%q in ("!t!") do (
    echo %%q
)


:scIn
rem endlocal
pause
rem exit /b

; 산출:

t1
t2
t3
Press any key to continue . . .

0

Windows cmd.exe셸 에서는 그렇게 할 수 없다고 생각합니다 . ( DOS 가 아닙니다 . )


이를 위해 완전한 "사용자 정의 쉘"이 필요하지 않습니다. 다음과 같이 작성하면됩니다 (예 : Python의 ).

import subprocess
subprocess.call(["C:\\bin\\sometool.exe", "test\nwith\nnewlines"])

또는 루비 :

Kernel::exec "C:\\bin\\sometool.exe", "test\nwith\nnewlines"

봐, 그렇게 어렵지 않아.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.