【发布时间】:2015-11-26 10:19:24
【问题描述】:
因此,这是我正在编写的脚本示例,用于生成 txt 文件,其中包含要传递给另一个系统的正确格式命令列表,基于一系列问题。
如果为 objectName、objectNumber 或 objectCategory 分配了一个字母数字值,则脚本将正确写入 txt 文件。但是,如果我要分配一个数值,则该值不会写入 txt 文件。
我猜这是与使用逗号有关的语法问题,因为我可以用几乎任何东西替换它,脚本会正常运行,但不幸的是它必须是逗号。
@ECHO OFF
SET objectCounter=1
SET /p objectName=What is the name of the object %objectCounter%?:
@ECHO OBJECTNAME%objectCounter%,%objectName%> objects.txt
SET /p objectNumber=How many of object %objectCounter% are there?:
@ECHO OBJECTNUMBER%objectCounter%,%objectNumber%>> objects.txt
SET /p objectCategory=Which group does object %objectCounter% belong to?:
@ECHO OBJECTCATEGORY%objectCounter%,%objectNumber%>> objects.txt
如果为objectNumber 分配了1 的值,这是一个输出到txt 文件的示例:
OBJECTNAME1,Apple
OBJECTNUMBER1,
OBJECTCATEGORY1,Fruit
如果objectNumber 被分配了2 或更大的值,这是一个输出到txt 文件的示例:
OBJECTNAME1,Apple
OBJECTCATEGORY1,Fruit
【问题讨论】:
-
这是否放在括号中(例如在 FOR、IF 或代码块中)?
-
不,不是那样的。应该吗?
-
如果您正在考虑使用
^,来转义逗号,我已经尝试过了 - 不走运。 -
在
>和>>之前放置一个空格。我相信您的 %objectNumber% 变量会导致 redirection 出现问题,尽管我有点困惑为什么当 objectNumber 为 2 时会出现 ObjectCategory 行。
标签: string batch-file scripting dos string-concatenation