windows - 特殊文字 - バッチファイル 改行コード 置換




改行をバッチファイルでどのようにエコーすることができますか? (12)

Grimtronが示唆するように、ここにそれを定義する簡単な例があります:

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

出力

C:\>test.bat
hello
world

どのようにバッチファイルの出力から改行を挿入できますか?

私は次のようなことをしたい:

> 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

cmd / bat-filesにはブランク行を書くための標準的な機能echo:があります。これはあなたのcmd出力に新しい行をエミュレートします:

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

上記のcmd-fileの出力:

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ステートメント)は気にしないので、 &&は必要ありません。

echo. echoステートメントを続行します。

これはすべて、コードである変数を実際に作成して他のコマンドの内部で使用できるためです。 バッチはまさにシェルスクリプト言語の最も進んだものではないので、これはゲットー関数のようなものです。 これは、バッチの変数の使い方が貧弱で、int、chars、float、stringsなどの間で自然に指定されていないためにのみ機能します。

あなたが狡猾であれば、これを他のものと連携させることができます。 たとえば、それを使ってタブをエコーする

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

これをバッチファイルに入れると、 '%'は2倍になります。

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

これは私にとっては効果的でした。

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

次のように出力を書き込みます。

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

つかいます:

echo hello
echo.
echo world

バッチで新しい行を始めるには、「echo [」を次のように追加するだけです。

echo Hi!
echo[
echo Hello!

何かをエコーし​​てファイルにリダイレクトすると、複数のエコーコマンドは機能しません。 私はおそらく ">>"リダイレクタは良い選択だと思う:

echo hello > temp
echo world >> temp

私はそれをもっと簡単にすることはできません:

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

結果をファイルに格納する必要がある場合は、

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






command-line