Board logo

标题: [已结]如何捕获标准输出到变量,管道好象不行 [打印本页]

作者: oneday     时间: 2007-8-27 19:11    标题: [已结]如何捕获标准输出到变量,管道好象不行

我主要是想将外部程序do.exe(dos不能完成的所以要调用外部)的输出赋值给变量a,不知怎么好?
开始还想当然:
set /p  a=do.exe  //好笑吧

后来:

do.exe | set /p a=

还是不行

各位尝试的时候可以用echo代替do.exe,一样是标准输出

echo love | set /p a=

想将love赋值给a,不成功?

[ Last edited by HAT on 2008-10-27 at 16:25 ]
作者: sonicandy     时间: 2007-8-27 21:28
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('do.exe') do set a=%%i
echo !a!
作者: mistysun     时间: 2008-10-27 16:03
这个问题最后是怎么解决的呢?
我很想知道。
作者: mistysun     时间: 2008-10-27 16:03
我指的是do.exe带参数的时候如何解决?
作者: lxmxn     时间: 2008-10-28 13:51


  Quote:
Originally posted by mistysun at 2008-10-27 16:03:
我指的是do.exe带参数的时候如何解决?

带参数也一样的道理,如果参数中有如(|、&)等特殊字符,需要用^先转义一下。
for /f "tokens=*" %%a in ('do.exe /your_parameters') do set var=%%a
echo %var%