中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]如何捕获标准输出到变量,管道好象不行
作者:
标题: [已结]如何捕获标准输出到变量,管道好象不行 上一主题 | 下一主题
oneday
初级用户





积分 24
发帖 8
注册 2007-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 ]

2007-8-27 19:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sonicandy
中级用户





积分 273
发帖 91
注册 2007-5-7
状态 离线
『第 2 楼』:  

setlocal enabledelayedexpansion
for /f "delims=" %%i in ('do.exe') do set a=%%i
echo !a!

2007-8-27 21:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mistysun
新手上路





积分 16
发帖 13
注册 2008-10-27
状态 离线
『第 3 楼』:  

这个问题最后是怎么解决的呢?
我很想知道。

2008-10-27 16:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mistysun
新手上路





积分 16
发帖 13
注册 2008-10-27
状态 离线
『第 4 楼』:  

我指的是do.exe带参数的时候如何解决?

2008-10-27 16:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  



  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%


2008-10-28 13:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: