中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 如何把命令结果作为下一命令的一部分?
作者:
标题: 如何把命令结果作为下一命令的一部分? 上一主题 | 下一主题
cao7113
初级用户





积分 50
发帖 19
注册 2008-3-31
状态 离线
『楼 主』:  如何把命令结果作为下一命令的一部分?

各位朋友:
      在dos中如何把命令结果作为下一命令的一部分执行?举例如下:
      echo [date],
      我想返回的是date作为命令执行的结果,而不是date这个字符串本身。
      我知道在unix/linux相关的shell中,返回命令的执行结果是用反引号(·),那么在dos中如何处理此类问题。
      急需解答,希望各位大侠拔刀相助!非常感谢!
     
      现实中的一个相关的需求如下:
      我希望在一个for循环中获取当前目录下子目录的列表,子目录列表可以使用dir /b /a:d获得,然而如何将该命令的返回结果放在for循环中进行逐个处理就不是很清楚啦!
     
      大家不妨发表一下意见!谢谢!

2008-5-20 09:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bearingxm
新手上路





积分 8
发帖 4
注册 2008-5-23
状态 离线
『第 2 楼』:  

关于你的具体问题  
不防试下:
@echo off
for /f "delims=" %%i in ('dir /b /ad') do echo %%i
pause

2008-5-23 17:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
brglng
银牌会员

永遠的DOS~~~



积分 1200
发帖 466
注册 2005-2-1
来自 上海
状态 离线
『第 3 楼』:  

要把一个命令的输出作为另一个命令的输入,可以使用管道,例如:
type a.txt | more
即把type a.txt的命令输出结果重定向到more的输入



32位才是DOS未来的希望
个人网志:http://sololand.moe
2008-5-23 20:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cao7113
初级用户





积分 50
发帖 19
注册 2008-3-31
状态 离线
『第 4 楼』:  

谢谢各位的回答!
bearingxm的解答中'dir /b /ad'为什么会被作为命令执行呢?而不是作为一个普通字符串处理,有点奇怪!!

to brglng:
管道符的原理我也明白,但是很难实现下面的问题:
##====================
    echo [date],
      我想返回的是date作为命令执行的结果,而不是date这个字符串本身。
    我知道在unix/linux相关的shell中,返回命令的执行结果是用反引号(·),那么在dos中如何处理此类问题。
#==================

可能是我理解有限,望指教,多谢!

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

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


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



论坛跳转: