Board logo

标题: 如何把命令结果作为下一命令的一部分? [打印本页]

作者: cao7113     时间: 2008-5-20 09:42    标题: 如何把命令结果作为下一命令的一部分?

各位朋友:
      在dos中如何把命令结果作为下一命令的一部分执行?举例如下:
      echo [date],
      我想返回的是date作为命令执行的结果,而不是date这个字符串本身。
      我知道在unix/linux相关的shell中,返回命令的执行结果是用反引号(·),那么在dos中如何处理此类问题。
      急需解答,希望各位大侠拔刀相助!非常感谢!
     
      现实中的一个相关的需求如下:
      我希望在一个for循环中获取当前目录下子目录的列表,子目录列表可以使用dir /b /a:d获得,然而如何将该命令的返回结果放在for循环中进行逐个处理就不是很清楚啦!
     
      大家不妨发表一下意见!谢谢!
作者: bearingxm     时间: 2008-5-23 17:12
关于你的具体问题  
不防试下:
@echo off
for /f "delims=" %%i in ('dir /b /ad') do echo %%i
pause
作者: brglng     时间: 2008-5-23 20:59
要把一个命令的输出作为另一个命令的输入,可以使用管道,例如:
type a.txt | more
即把type a.txt的命令输出结果重定向到more的输入
作者: cao7113     时间: 2008-5-24 10:07
谢谢各位的回答!
bearingxm的解答中'dir /b /ad'为什么会被作为命令执行呢?而不是作为一个普通字符串处理,有点奇怪!!

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

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




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5