[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]请问批处理中管道的具体用法

我看到的所有批处理教程都写说:嗯,这个是把前一个命令的输出当做后一个命令的输入。
然后举例(大致差不多都是这样):dir /b | find "LOG"

我的问题:对于一般的情况。两个命令,前一个输出了一些结果。后一个接受若干个参数。
请问,管道会把前一个的结果当做后一个的哪个参数呢?
我写了几个.bat。发现“|”完全不能用。
//a.bat   输出aaa
@echo aaa

//b.bat   接受两个参数,简单输出之
@echo %1
@echo %2

//c.bat  用管道来试试看?
call a.bat|call b.bat bbb

你猜结果是
aaa
bbb
还是
bbb
aaa


自己试试看!?到底是怎么回事呢?

把c.bat写成
a.bat|b.bat bbb
的结果是一样的!

[ 本帖最后由 sleepinglord 于 2010-8-29 00:14 编辑 ]

大致明白了,提供运行时参数,而非编译时参数,似乎也不是很准确。

TOP

call是执行另一个P的意思
你要明白%0之%9的参数存在的意义呀

CALL的参数就是能传递过程中变量的参数
也就是说CALL并没有输出或直接输入任何也,你只能通过参数来传递变量

[ 本帖最后由 qq106942397 于 2010-8-28 10:25 编辑 ]

TOP

楼主试下这两段就明白了
@echo off
del c:\*.tmp /p /s
pause


@echo off
echo y| del c:\*.tmp /p /s
pause

TOP

返回列表