バッチ変数をテキストファイルに保存しようとしています。私は現在このコードを持っています:
@echo off
Set var=6
@echo %var%>txt.txt
For /f "tokens*" %%i in (txt.txt) do @echo %%i
Pause
6を変数varに保存してから、変数をテキストファイルに書き込むことになっています。これを実行して、ユーザー入力をテキストファイルに保存し、バッチプログラムが終了したときに変数を保持できるようにします。
リダイレクトには少し問題があります。 「ストリーム」をリダイレクトしています。それらには0〜9の番号が付けられています。 0は「標準入力」(STDIN)、1は「標準出力」(STDOUT)、2は「エラー出力」(STDERR)です。
ストリーム番号なしでリダイレクトシンボル>
を使用すると、デフォルトで「1」になります。
したがって、echo text>txt.txt
はecho text 1>txt.txt
の略語です。
今では注意が必要です。echo 6>txt.txt
は「6」をファイルにエコーしませんが、「ストリーム6」(空)をファイルにリダイレクトしようとします。 「Stream1」はリダイレクトされないため、標準出力echo is off
が画面に表示されます。
解決:
数字または数字で終わる文字列をリダイレクトしようとする場合は、別の構文を使用してください。
>txt.txt echo 6
Setコマンドを使用して、ファイルの内容を取得します。
set /p var=<filename
Echoコマンドを使用してファイルに入れます。
@echo Contents Of File > "FileName"
ファイルの末尾に別の行を追加するには、次を使用します。
@echo Contents Of File >> "FileName"
また、コマンドを別々の行に配置するか、同じ行のコマンドの間に「&&」を使用します。