[windows] 你怎麼能在批處理文件中回顯一個換行符?


Answers

使用:

echo hello
echo.
echo world
Question

你怎麼能從你的批處理文件輸出插入一個換行符?

我想要做一些事情:

> echo hello\nworld

哪個會輸出:

你好
世界




Ken和Jeb解決方案運作良好。

但是新行僅用LF字符生成,我需要CRLF字符(Windows版本)。

為此,在腳本結尾處,我已將LF轉換為CRLF。

例:

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



要批量開始新行,您只需添加“echo [”,如下所示:

echo Hi!
echo[
echo Hello!



就像Grimtron所建議的那樣 - 下面是一個快速定義它的例子:

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

產量

C:\>test.bat
hello
world



有一個標準的特徵echo:在cmd / bat-files中寫空行,它在你的cmd輸出中模擬一個新行:

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

上面引用的cmd文件的輸出:

line1

line2



你可以使用@echo (@echo + [space] + [insecable space])

注意:可以用Alt + 0160獲得可放置的空間

希望能幫助到你 :)

嗯,你是對的,我需要它在一個Makefile中,它在那裡完美的工作。 我想我的答案不適合批處理文件...我的壞。




echo. 說夠了。

如果您需要一條線,請使用& 。 例如,

echo Line 1 & echo. & echo line 3

會輸出為:

Line 1

line 3

現在,假設你想要更有趣的東西,......

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

輸出

hello
world

然後,只要你想在echo語句中添加一行,就只需要輸入%n% 。 這更接近您在各種語言中使用的\n

分解

set n=設置變量n等於:

^排除下面的符號:

&意味著在同一行上執行另一個命令。 我們不關心errorlevel(它是一個大聲喊叫的迴聲聲明),所以不需要&&

echo. 繼續迴聲聲明。

所有這些工作,因為你實際上可以創建代碼的變量,並在其他命令中使用它們。 它有點像貧民窟的功能,因為批量並不是最先進的shell腳本語言。 這只適用於批處理變量的不良使用,而不是自動指定整數,字符,浮點數,字符串等。

如果你很狡猾,你可以把它和其他東西一起使用。 例如,使用它來回顯標籤

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



你也可以這樣做,

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

輸出將是,

a
b
c d

請注意,如果將其放入批處理文件中,則'%'應加倍。

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



Related