【Windows】echoコマンドでのファイル出力時に改行しない問題を解決

Winでechoコマンドでのファイル出力時に改行しない問題を解決 Windowsサーバ

問題提起

Windowsでechoコマンドを使用して追記書込みしてファイルに出力したい場合、注意が必要です。
それは、最終行が文字やプログラムの最後だった場合、すなわち、改行しないで文章やプログラムが終わっていると、その続きに(改行しない)で、echoコマンドで出力したい文字列が出力されます。
この問題解決する方法を解説します。
※Linuxでは、改行されてから文字列が出力されます

LinuxとWindowsでのechoコマンドの改行の違いについては以下のサイトをご確認ください。

スポンサーリンク

Linuxと同様にechoコマンドの文字列を改行後に出力する方法

echoコマンドの記述方法は以下になります。

(echo;&echo 192.168.10.11   win2.isleofhoso.com) >> test.txt


「echo;&echo」は空白を開けずに入力して、必ず「()カッコ」も忘れずに入力して、リダイレクトにてファイル出力してください。
※「echo;」が改行するコマンドになります。


実行結果


通常通りにechoコマンドを実行した場合
echo 192.168.10.11   win2.isleofhoso.com >> test.txt



windowsでechoコマンドを実行時に理解しておきたい事

Windowsにてechoコマンドを実行する場合は、このように想定していない箇所に文字列が出力されますので、出力するファイルの最終行がどこにあるか注意する必要があります。

一般的には、echoコマンドを実行する場合は、文字列の途中からではなく、行の最初から出力することが多いので

(echo;&echo 192.168.10.11   win2.isleofhoso.com) >> test.txt

を利用するようにしておけば、ファイルの最終行を意識しなくてもよいので便利です。


追加情報

出力するファイルの最終行が文字列の最後ではなく、空白行で終わっていた場合に

(echo;&echo 192.168.10.11   win2.isleofhoso.com) >> test.txt

を実行した場合は以下の様に、空白行の後に文字列が出力されます。
このコマンドは、必ず改行して文字列を出力することを目的としていますので当然の結果と言えます。


echoコマンドの改行について

「;」はechoコマンドにおける「改行」を意味ます。
他にも同じ改行を意味する
「echo.」
「echo:」
「echo,」
があります。

もし、「echo;」で改行できない場合は、上記3つのいずれかで確認ください。
※基本、どれを利用しても改行されます。

以下は、どれも同じ動作をします。

(echo;&echo 192.168.10.11   win2.isleofhoso.com) >> test.txt
(echo.&echo 192.168.10.11   win2.isleofhoso.com) >> test.txt
(echo:&echo 192.168.10.11   win2.isleofhoso.com) >> test.txt
(echo,&echo 192.168.10.11   win2.isleofhoso.com) >> test.txt

コメント

タイトルとURLをコピーしました