문제

할 수 있는 방법 당신은 당신을 삽입하는 줄 바꿈에서의 배치 파일을 출력?

내가 원하는 무언가를 하는 다음과 같:

echo hello\nworld

는 것 출력:

hello
world
도움이 되었습니까?

해결책

echo hello & echo.world

이를 정의할 수 있습니다 & echo. 으로 일정한 줄 바꿈 \n.

다른 팁

를 사용:

echo hello
echo.
echo world

여기서 당신은,이동합니다.bat 파일에 다음과 같다:

@echo off
REM Creating a Newline variable (the two blank lines are required!)
set NLM=^


set NL=^^^%NLM%%NLM%^%NLM%%NLM%
REM Example Usage:
echo There should be a newline%NL%inserted here.

echo.
pause

당신이 볼 수 출력이 다음과 같습니다.

There should be a newline
inserted here.

Press any key to continue . . .

만 필요한 코드 사이의 램 문을 분명합니다.

있는 표준 기능 echo: 에 cmd/bat 파일을 쓰고 빈 줄을 에뮬레이션에서 새로운 라인의 cmd-출력:

@echo off
@echo line1
@echo:
@echo line2

출력 이상 인용 된 cmd-파일:

line1

line2

다음과 같이 대답의 켄지만,사용과 지연을 확장합니다.

setlocal EnableDelayedExpansion
(set \n=^
%=Do not remove this line=%
)

echo Line1!\n!Line2
echo Works also with quotes "!\n!line2"

첫 번째 단 하나 줄 바꿈 문자를 만들어에 할당된 변수입니다.
이 작품으로 캐럿 라인에서 끝을 탈출하려고 다음 문자,그러나 이 경우 줄 바꿈은 무시하고 다음 사항을 보고 탈출(는 경우에도 이것은 또한 줄 바꿈).
그런 다음 필요 세 번째 줄 바꿈을 끝 현재 명령,다른 세 번째 라인에 추가될 LF-변수입니다.
심지어는 배치 파일이 라인을 엔딩 CR/LF 만 LF 은 중요한 것으로,크롬의 제거에서 이상의 parser.

의 이점이 사용하는 지연장가 없다는 것을,특수 문자 처리다.
echo Line1%LF%Line2 실패로,파서 중지 분석에서 단 하나 줄 바꿈.

더 많은 설명서
그래서:긴 명령러 라인에서 Vista/DOS 일괄(.bat)파일
그래서 어떻게 Windows 명령 인터프리터(CMD.EXE)parse 스크립트?

편집:피 echo.

이 질문에 대답으로,질문에 대한 단일 echo 출력할 수 있는 여러 라인입니다.

그러나에도 불구하고 다른 답변 사람의 사용을 제안 echo. 새로운 라인을 만들,그것은 주목해야한다는 echo. 최악으로,그것은 매우 느리게 할 수 있습 완전하게 실패로 cmd.exe 라는 파일을 검색 ECHO 하려고 시작합니다.

인쇄를 위한 다 빈 라인,당신은 중 하나를 사용할 수 있습니다

echo,
echo;
echo(
echo/
echo+
echo=

그러나 사용 echo., echo\echo: 피해야한다,그들이 할 수 있는 것이 정말로 느린,따라의 위치는 스크립트를 실행됩니다,다음과 같은 네트워크 드라이브입니다.

echo. 충분히 말했다.

당신이 그것을 필요로 하는 경우에 한 줄 사용 &.예를 들어,

echo Line 1 & echo. & echo line 3

출력으로:

Line 1

line 3

이제 당신이 뭔가를 원하는 비트 애호가,...

set n=^&echo.
echo hello %n% world

출력

hello
world

음에서 던져 %n% 당신이 원하는 때마다 새로운 라인에 echo 문입니다.이것은에게 더 가까이 당신의 \n 에서 사용되는 다양한 언어로 대응하고 있습니다.

고장

set n= 변수 설정 n 과 같:

^ Null 다음 기호에 따라하기:

& 을 의미하는 또 다른 명령에 동일한 라인입니다.우리에 대해 걱정하지 않는 오류 수준(그 echo 문 우는 소리),아 && 이 필요합니다.

echo. 계속 echo 문입니다.

이 모든 작동할 수 있기 때문에 실제로 변수를 만들은 코드들을 사용하여 내부의 다른 명령이 있습니다.그것은 같은 종류의 빈민가능 이후,일괄 처리가 정확하지 않게 가장 진보의 쉘 스크립트 언어입니다.이 때문에 배치의 사용량의 변수를 지정하지 않 사이의 정수,문자,수레,문자열 등 자연스럽게.

는 경우 교활,당신이 얻을 수 있는 이와 다른 것들입니다.예를 들어,그것을 사용하는 탭 echo

set t=^&echo.     ::there are spaces up to the double colon

면을 울리는 뭔가로 리디렉션하는 파일에 여러 명령을 작동하지 않습니다.나는 생각하면">>"redirector 좋은 선택이다:

echo hello > temp
echo world >> temp

처럼 Grimtron 제안-여기에 빠른 예를 정의한다:

@echo off
set newline=^& echo.
echo hello %newline%world

출력

C:\>test.bat
hello
world

필요할 경우를 넣어 결과를 파일로 사용할 수 있습니다

(echo a & echo. & echo b) > file_containing_multiple_lines.txt

도 수행할 수 있습 다음과 같이,

(for %i in (a b "c d") do @echo %~i)

출력 될 것입니다,

a
b
c d

참고하는 경우 이에 배치 파일,'%'될 것 두 배가 됩니다.

(for %%i in (a b "c d") do @echo %%~i)

사람이 있다면 여기에 오고 있기 때문에 그들을 에코 빈에서 선 MINGW 을 메이크,사용

@cmd /c echo.

단순히 사용 echo. 원인 지칠대로 지친 process_begin: CreateProcess(NULL, echo., ...) failed. 오류 메시지가 표시됩니다.

도움이 되기를 바랍니다 적어도 하나의 다른 사람이 거기:)

를 시작하고 새로운 라인에서 일괄,모든 당신이해야 할 추가"echo["이렇게:

echo Hi!
echo[
echo Hello!

이것은 나를 위해 일한,지연 확장이 필요하다:

@echo off
(
echo ^<html^> 
echo ^<body^>
echo Hello
echo ^</body^>
echo ^</html^>
)
pause

쓰 출력 this:

<html>
<body>
Hello
</body>
</html>
Press any key to continue . . .

켄 및 젭 솔루션 잘 작동합니다.

하지만 새 줄만으로 생성되는 LF 캐릭터가 필요 CRLF 문자(윈도우 버전)입니다.

이 말에,스크립트가 변환 LF CRLF.

예제:

TYPE file.txt | FIND "" /V > file_win.txt
del file.txt
rename file_win.txt file.txt

면 중 하나를 사용할 필요가명 에서 문자열에 전달될 수 있는 변수로 작성할 수 있습니다 다음과 같은 코드에서 안녕하세요.bat 아래 스크립트:

@echo off
set input=%1
if defined input (
    set answer=Hi!\nWhy did you call me a %input%?
) else (
    set answer=Hi!\nHow are you?\nWe are friends, you know?\nYou can call me by name.
)

setlocal enableDelayedExpansion
set newline=^


rem Two empty lines above are essential
echo %answer:\n=!newline!%

이 방법은 여러 출력할 수 있습여 준비 한 곳에서,심지어 다른 scritpt 또는 외부 파일과 인쇄된다.

선박에서 개최 줄 바꿈 변수가 있습니다.그 값을 대체 할 수 있어야합니다 후에echo 라인을 확장 그래서 사용 setlocal enableDelayedExpansion 사용하려면 감탄하시는 표적을 확장하는 변수에 실행합니다.고 실행 대체 줄 바꿈 내용(모습에 대한 구문에서 설정하는 데 도움이).물론 사용 !newline! 설정하는 동안 응답 은 더 편리합니다.그것이 전달 될 수 있습니다 외부에서(도 안녕하세요 R2 D2),아무도 알고있는 이름의 변수를 들고 줄 바꿈(예, 안녕하세요 C3!newline!P0 동일한 방식으로 작동합).

위 예제될 수 있 세련 서브 루틴이나 독립형이 일괄 처리처럼 사용 call:mlecho Hi\nI'm your comuter:

:mlecho
setlocal enableDelayedExpansion
set text=%*
set nl=^


echo %text:\n=!nl!%
goto:eof

는 것을주의하시기 바랍 추가 백슬래쉬는데 방해가 되지 못하도록 최선을 다에서 스크립트를 구문 분석 하위 문자열.

당신이 사용할 수 있는 @echo (@echo+[공]+[insecable 공간])

참고:이 insecable 공간으로 얻을 수있는 Alt+0160

는 데 도움이되기를 바랍니다:)

[편집]요 당신 말이 맞아,내가 그것을 필요에 Makefile,그것은 완벽하게 작동합니다.나는 내가 응답하지 않고 일괄 파일을 만들거나 수정합니다.내 나쁘다.

나는 그것을 할 수없는 어떤 간단한다:

echo echo hello^&echo world^&pause>silly.bat                       
call silly.bat

가장 문자 보수적인 방식으로 이러한 작업을 수행하는 리눅스 시스템과 함께 -e alias-해석을 탈출했는 문자 backslashed.

echo -e "hello\nworld"

여기에는 다른

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top