@echo off
setlocal
SET /P name="Name? "
SET /P address="Street address? "
SET /P city="City? "
SET /P state="State? "
SET /P zip="Zip? "
echo %name%,%address%,%city%,%state%,%zip% >> clients.txt
真の CSV 形式にしたい場合は、入力した値を次のように引用符で囲む必要があります。
echo "%name%","%address%","%city%","%state%","%zip%" >> clients.txt
テキスト ファイルを完全に 1 行にしたい場合 (グループごとに 1 行ではなく)、
set /p I="%name%","%address%","%city%","%state%","%zip%" <NUL >> clients.txt
後続set /p I=stuff<NUL >>clients.txt
の各データは、改行なしで最初の行に追加されて書き込まれます。
説明
コンソールに出力された単一の>
テキストを含むデータをエコーすると、代わりに新しい出力ファイルにリダイレクトされ、宛先ファイルが既に存在する場合は上書きされます。
double を使用してデータをエコーすると>>
、出力は上書きせずに既存のファイルに追加されます (ファイルがまだ存在しない場合は作成されます)。
改行なしで追加するのは少しトリッキーで、ちょっとしたハッカーが必要です: set /p var=text to append<NUL >>outfile.txt
. 詳細が必要な場合は、コメントを残してください。なぜそれが機能するのかを説明しようと思います.