有人可以帮助我。
我在批处理文件中有5个变量,这些变量是通过提示输入的
set Name=john smith
set address=25 center street
set city=Hackenack
set state=NJ
set zip-07601
我想创建一个逗号分隔的输出文本文件,名为clients.txt,它将在一行中包含变量的内容,用逗号分隔字段。
我将在变量中拥有数百个具有不同值的输入记录。
我只需要帮助向我展示如何将变量重定向到一个输出记录。 谢谢
答案 0 :(得分:0)
@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
,数据将被写入第一行,不会换行。
<强>解释强>
当您使用单个>
文本回显数据时,该文本将输出到控制台,而是重定向到新的输出文件,如果目标文件已存在,则覆盖目标文件。
当您使用double >>
回显数据时,输出会附加到现有文件而不会覆盖(或者如果文件尚不存在则会创建)。
没有换行符的追加是有点棘手的,需要一些小问题:set /p var=text to append<NUL >>outfile.txt
。如果您需要更多详细信息,请发表评论,我将尝试解释为什么以其工作方式运作。