Chapter 12

改行しない出力・複数行出力

zetamatta
zetamatta
2020.10.19に更新
このチャプターの目次

改行しない出力

DOSコマンドで、好きな形式に「パスのコピー」する - Qiitaより

echo -n MESSAGE 相当の改行しない echo は

SET /P ="MESSAGE" < NUL

で実現できるようです。この SET は本来 SET /P VAR=PROMPT という形式で、PROMPT を表示した後、ユーザが入力した値を環境変数 VAR に設定するコマンドですが、実は環境変数名は省略できます。さらに標準入力を NUL でリダイレクトすることで、ユーザ入力自体も素通りさせられるようです。無茶苦茶ですね。

複数行出力

初回は > で、二行目以降を >> で echo してもよいですが、何回もファイル名を書くとミスが発生する恐れがあります。まとめましょう

( echo (arxload "%ROOT%/hoge1.arx"^)
  echo (arxload "%ROOT%/hoge2.arx"^)
  echo (arxload "%ROOT%/hoge3.arx"^)
) > "%CADDIR%\hoge.scr"
  • 複数の echo を丸括弧でまとめて、一つのリダイレクトで出力させることができる
  • echo 中で丸括弧の閉じる方を出力する場合は ^ でエスケープする必要がある