中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 04:48
47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]如何捕获标准输出到变量,管道好象不行
可打印版本  1,023 / 4
第1楼 oneday 发表于 2007-08-27 19:11
初级用户 发帖 8 积分 24
[已结]如何捕获标准输出到变量,管道好象不行
我主要是想将外部程序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 ]
第2楼 sonicandy 发表于 2007-08-27 21:28
中级用户 发帖 91 积分 273
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('do.exe') do set a=%%i
echo !a!
第3楼 mistysun 发表于 2008-10-27 16:03
新手上路 发帖 13 积分 16
这个问题最后是怎么解决的呢?
我很想知道。
第4楼 mistysun 发表于 2008-10-27 16:03
新手上路 发帖 13 积分 16
我指的是do.exe带参数的时候如何解决?
第5楼 lxmxn 发表于 2008-10-28 13:51
版主 发帖 4,938 积分 11,386
Originally posted by mistysun at 2008-10-27 16:03:
我指的是do.exe带参数的时候如何解决?

带参数也一样的道理,如果参数中有如(|、&)等特殊字符,需要用^先转义一下。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023