2017-06-01 171 views
0

我在批处理脚本中没有很强的背景,所以如果有明显的答案,请致歉。将批处理命令输出到变量

我想将命令提示符的输出指向一个变量。我可以将它输出到这样的文件中

go test -race > output.txt 

在这种情况下,output.txt会使用go test -race的输出填充。我所试图做的是它输出给一个变量,一些沿

set iamavariable=nothotdog 
go test -race > %iamavariable% 
echo %location% 

线这将创建一个名为nothotdog有不合格测试的-RACE输出文件,并呼应,而不是呼应输出nothotdog,去测试-race

+1

你为什么'回声%位置%'?这对我来说是无稽之谈。 – SteveFest

+0

对不起,这是一个复制和粘贴错误 – manrilla

回答

1

要正确得到命令的结果,您需要一个for循环。

for /f %%p in ('your command') do set result=%%p 
echo %result% 

如果命令是不是单个字/数字/字符/数字输出更多的话,或许这将是更好的:

For /F "Delims=" %%A In ('go test -race') Do Set "result=%%A" 
Echo %result% 
+3

如果命令输出多个单词/数字/字符/数字,那么也许这会更好:'For/F“Delims =”%% A In -race')Do设置“location = %% A”' – Compo