@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
如果您希望文本文件完全是一行(不是每个分组一行),那么
set /p I="%name%","%address%","%city%","%state%","%zip%" <NUL >> clients.txt
并且对于随后set /p I=stuff<NUL >>clients.txt
的每个数据将被写入附加到第一行,没有换行符。
解释
当您使用单个>
文本回显数据时,本应输出到控制台的数据会被重定向到新的输出文件,如果目标文件已经存在,则覆盖它。
当您使用双精度回显数据时>>
,输出将附加到现有文件而不覆盖(或者如果文件尚不存在则创建)。
在没有换行符的情况下追加有点棘手,并且需要一点技巧:set /p var=text to append<NUL >>outfile.txt
. 如果您需要更多详细信息,请发表评论,我将尝试解释为什么会这样。