需要帮助将批处理文件中的变量重定向到逗号分隔的文本文件

时间:2013-02-07 16:14:05

标签: batch-file redirect

有人可以帮助我。

我在批处理文件中有5个变量,这些变量是通过提示输入的

set Name=john smith
set address=25 center street
set city=Hackenack
set state=NJ
set zip-07601

我想创建一个逗号分隔的输出文本文件,名为clients.txt,它将在一行中包含变量的内容,用逗号分隔字段。

我将在变量中拥有数百个具有不同值的输入记录。

我只需要帮助向我展示如何将变量重定向到一个输出记录。  谢谢

1 个答案:

答案 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。如果您需要更多详细信息,请发表评论,我将尝试解释为什么以其工作方式运作。