【发布时间】:2015-09-11 04:35:51
【问题描述】:
我知道这样做的方法有点像作弊,但下面的代码会创建一个临时文件,然后将其删除。我不希望这种情况发生。那么有没有合适或更好的方法呢?
command 2>> "temp"
set /p OUTPUT=<"temp"
del "temp"
echo %OUTPUT%
我知道有一种使用 for 循环的解决方案,但它不适用于返回多于一行结果的命令。我想将它们全部存储到我的变量中。 (我试过这个code btw)
【问题讨论】:
-
临时文件的输出和随后的
set /p只会将临时文件中任何内容的第一行存储到变量中。那是你要的吗?因为如果是这种情况,for循环可以通过if defined语句轻松调整以实现这一点。 -
也许值得一提:命令的期望输出在 STDERR 上。
-
如果可能的话,我希望存储所有内容,而不是存储第一行。
-
本质上,不可能在一个变量中存储多行。您可以将它们存储在变量数组中,或者您可以将它们存储在单个变量中,换行符替换为字符或字符串(例如
line1#line2#line3,其中#表示“新行”) - 但在后一种情况,您可能需要仔细选择您的字符,并且您有大约 8180 个字符的限制。 -
那会很有用。我们如何将它们存储到变量数组中?
标签: windows batch-file command