【发布时间】:2011-02-14 16:21:45
【问题描述】:
我编写了一个批处理文件,它由程序作为后处理实用程序启动。批处理文件读取调用程序提供的约 24 个参数,将它们存储到变量中,然后将它们写入各种文本文件。
由于 CMD 中的最大输入变量是 %9,因此有必要使用“shift”命令重复读取这些变量并将其分别存储到命名变量中。因为程序输出了几个类似的批处理文件,结果是依次打开几个CMD窗口,分配变量和写入数据文件。这会占用调用程序太长时间。
我突然想到,如果有一种方法可以编写一个非常简单的批处理文件,可以将所有命令参数写入一个文本文件,我以后可以在其中处理它们,那么我可以更快地释放调用程序。基本上,只要抓取参数列表,写完就可以了。
问:有没有办法将整个系列的参数数据视为一个大文本字符串并将其写入一个大变量......然后将整个大数据回显到一个文本文件?然后在没有程序等待恢复时将字符串读入 %n 个变量?
参数列表大概是 25 - 30 个字,少于 200 个字符。
示例参数列表:
"名字" "姓氏" "123 Steet Name Way" "城市名" ST 12345 1004968 06/01/2010 "名字+姓氏" 101738 "帐户上" 20.67 xy-1z 1 8.95 3.00 1.39 0 0 239 8.95
引号中的项目作为字符串变量处理。列表以空格分隔。
有什么建议吗?
【问题讨论】:
-
我想我不明白你在这里尝试什么。 24×
shift和变量赋值应该几乎是瞬间发生的。如果您不想等待批处理文件,则可以将这些内容直接从程序中写入文本文件。或者只是预先设置环境变量,如果你想避免shift和变量赋值。如果批处理文件不需要按顺序运行,您也可以异步启动它们。至于您的问题,您可以使用for /f进行标记,但由于引号或子例程,这很痛苦;但这会让你从你开始的地方开始 -
谢谢你,Johannes:我做了更多研究,发现了一个看似简单的解决方案。我将整个参数集视为一个字符串变量......所以整个事情作为 %1 变量到达。我将其写入命名变量,然后将其写入文本文件。这为我提供了随后需要通过字符串操作处理的数据。我很感激你的回应。很有帮助。
标签: variables parameters cmd