問題提起
Windowsでechoコマンドを使用して追記書込みしてファイルに出力したい場合、注意が必要です。
それは、最終行が文字やプログラムの最後だった場合、すなわち、改行しないで文章やプログラムが終わっていると、その続きに(改行しない)で、echoコマンドで出力したい文字列が出力されます。
この問題解決する方法を解説します。
※Linuxでは、改行されてから文字列が出力されます
LinuxとWindowsでのechoコマンドの改行の違いについては以下のサイトをご確認ください。
Linuxと同様にechoコマンドの文字列を改行後に出力する方法
echoコマンドの記述方法は以下になります。
(echo;&echo 192.168.10.11 win2.isleofhoso.com) >> test.txt
実行結果
通常通りに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
コメント