-1

有人可以帮我解决这个问题。

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

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

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

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

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

4

1 回答 1

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的每个数据将被写入附加到第一行,没有换行符。

解释

当您使用单个>文本回显数据时,本应输出到控制台的数据会被重定向到新的输出文件,如果目标文件已经存在,则覆盖它。

当您使用双精度回显数据时>>,输出将附加到现有文件而不覆盖(或者如果文件尚不存在则创建)。

在没有换行符的情况下追加有点棘手,并且需要一点技巧:set /p var=text to append<NUL >>outfile.txt. 如果您需要更多详细信息,请发表评论,我将尝试解释为什么会这样。

于 2013-02-07T16:56:26.377 回答