Windowsで改行しないechoを行うための方法について書く。
Windowsで、例えば現在時刻を表示するために、
echo %date% %time%
と実行すると、時刻の後に改行が表示されるので、時刻とそれに続く内容を一行で表示したい時に困る。
これを解決するには、set /p コマンドを使用する。set /p コマンドは、
set /p 入力情報を入れる変数=コマンド実行時の表示文字列
という形式で使用する。この「コマンド実行時の表示文字列」の後には改行が付かないので、それを利用し以下のようにする。
set /p x=%date% %time% <nul
「<nul」は、入力文字列は必要なく、これがないと入力待ちになってしまうので付けている。ちなみに上記では、便宜上、変数 x を使用したが、これを省略した以下でもOKだった。(Windows10で検証済み)
set /p=%date% %time% <nul
set /p<nul=%date% %time%
ただ、この方法は、Windows(Microsoft)側が意図した使い方ではないような気がするので、Windowsのバージョンが挙がった際に挙動が変わって使えなくなる可能性もあるかもしれない。