할 수 있는 방법 echo 줄 바꿈에서는 배치 파일은?
-
02-07-2019 - |
문제
할 수 있는 방법 당신은 당신을 삽입하는 줄 바꿈에서의 배치 파일을 출력?
내가 원하는 무언가를 하는 다음과 같:
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"
여기에는 다른 예