中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-20 16:10
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 如何把命令结果作为下一命令的一部分? 查看 865 回复 3
楼 主 如何把命令结果作为下一命令的一部分? 发表于 2008-05-20 09:42 ·  中国 北京 光环新网
初级用户
积分 50
发帖 19
注册 2008-03-31 15:10
18年会员
UID 114544
性别 男
状态 离线
各位朋友:
在dos中如何把命令结果作为下一命令的一部分执行?举例如下:
echo [date],
我想返回的是date作为命令执行的结果,而不是date这个字符串本身。
我知道在unix/linux相关的shell中,返回命令的执行结果是用反引号(·),那么在dos中如何处理此类问题。
急需解答,希望各位大侠拔刀相助!非常感谢!

现实中的一个相关的需求如下:
我希望在一个for循环中获取当前目录下子目录的列表,子目录列表可以使用dir /b /a:d获得,然而如何将该命令的返回结果放在for循环中进行逐个处理就不是很清楚啦!

大家不妨发表一下意见!谢谢!
2 发表于 2008-05-23 17:12 ·  中国 湖北 武汉 电信
新手上路
积分 8
发帖 4
注册 2008-05-23 16:06
18年会员
UID 119509
性别 男
状态 离线
关于你的具体问题
不防试下:
@echo off
for /f "delims=" %%i in ('dir /b /ad') do echo %%i
pause
3 发表于 2008-05-23 20:59 ·  中国 浙江 杭州 电信
银牌会员
★★★
永遠的DOS~~~
积分 1,200
发帖 466
注册 2005-02-01 00:00
21年会员
UID 35867
性别 男
来自 上海
状态 离线
要把一个命令的输出作为另一个命令的输入,可以使用管道,例如:
type a.txt | more
即把type a.txt的命令输出结果重定向到more的输入
32位才是DOS未来的希望
个人网志:http://sololand.moe
4 发表于 2008-05-24 10:07 ·  中国 北京 鹏博士BGP
初级用户
积分 50
发帖 19
注册 2008-03-31 15:10
18年会员
UID 114544
性别 男
状态 离线
谢谢各位的回答!
bearingxm的解答中'dir /b /ad'为什么会被作为命令执行呢?而不是作为一个普通字符串处理,有点奇怪!!

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

可能是我理解有限,望指教,多谢!
论坛跳转: