リダイレクト/テキストファイルに出力する
大なり記号の後にファイルのパスを指定して、出力をファイルに書き出す。
@echo Hello, World > greeting.txt
Code language: DOS .bat (dos)
追記する場合は、大なり記号を二つ重ねる。
@echo My name is John. >> greeting.txt
Code language: DOS .bat (dos)
参考:
ファイルへ出力する | 知識ゼロからの Windows バッチファイル超入門
How can I use a batch file to write to a text file? – Stack Overflow
ヌルリダイレクト (nul)
nul
にリダイレクトする。
@echo Hello, World > nul
Code language: DOS .bat (dos)
エラーメッセージも含めて nul
にリダイレクトする。
error > nul 2>&1
Code language: DOS .bat (dos)
エラーメッセージのみ nul
にリダイレクトする。
error 2> nul
Code language: DOS .bat (dos)
参考:
bat ファイルでコマンドの実行結果を出力しないようにする方法 – Qiita
How to redirect stderr to null in cmd.exe – Stack Overflow
ファイル入力
参考:
ファイルから文字列を読み込む | 知識ゼロからの Windows バッチファイル超入門
for ループを使ってファイル内容を一行ずつ読み込む | 知識ゼロからの Windows バッチファイル超入門
バッチファイル外部ファイルの読み書き | CapmNetwork
標準出力とファイルの両方へ出力したい
- 残念ながら
cmd
が提供する環境にそのような機能はない。
代替手段
- ファイル出力しておいて、
type
コマンドでファイルの内容を出力する。(※リアルタイムに確認はできない) - Linux コマンドの
tee
を導入する。 - PowerShell でコマンドを実行する。
参考:
Windows で標準出力とファイルの両方へ出力している風に見せる | しもむブログ