bat批处理:bat批处理教程(四)来源: 发布时间:星期三, 2008年12月17日 浏览:6次 评论:0
下面从管道命令讲起常用管道命令有以下这些:|、>、>>
11、| 这个命令恐怕大家不是很陌生经常操作DOS朋友都应该知道当我们查看个命令帮助时如果帮助信息比较长屏幕显示不完时DOS并不给我们时间让我们看完屏幕再翻到另屏幕而是直接显示到帮助信息最后如在提示符下输入help回车时就会看到当前DOS版本所支持所有非隐含命令但你只能看到最后那些命令前面早就闪而过了如何解决这个问题?看例十 3: help | more 回车后会发现显示满屏幕后就自动暂停等候继续显示其他信息当按写回车时变成个个出现;按下空格键时屏幕屏幕显示直到全部显示完为止;按其他键自动停止返回DOS 为什么会出现上述现象?答案很简单这里结合了管道命令|和DOS命令more来共同达到目这里先简单介绍下help命令和more命令对理解|命令使用方法有很大帮助 11.1、help命令 其实这个命令是不需要多说但在上述例子中help命令使用方法比较特殊直接在DOS提示符下输入help命令结果是让DOS显示其所支持所有非隐含命令而在其他地方用help命令如输入net help回车则是显示net命令帮助信息 11.2、more命令 可能很多朋友以前就没有接触过这个命令这个命令在Linux下用处非常广泛也是管道命令的大家可以找篇比较长文章(a.txt)在DOS提示符下输入如下两个命令去比较下差别:more a.txt和type a.txt利用more命令可以达到逐屏或逐行显示输出效果而type命令只能次把输出显示完最后结果就是只能看到末尾部分在例十 3里more命令作用就是让输出信息逐屏或逐行显示 看到这里你是否已经能隐约感受到了|命令作用了?没错它作用就是把前命令输出当后命令输入来用在例十 3里前命令输出就是help命令执行后显示DOS所支持所有非隐含命令而这个结果刚好做了后命令more输入所以例十 3和下面例十 4是等效: help > a.txt more a.txt del a.txt 这里利用另管道命令>生成了个a.txt文件作为中间环节在用more命令查看a.txt文件后再删除a.txt文件(例十 3所有操作是在内存中进行不生成文件)可以看出正确使用管道命令|可以带来事半功倍效果 结合例十 3和例十 4以及前面例 9再体会遍:|命令作用就是让前命令输出当做后命令输入 12、>、>> 这两个命令效果从本质上来说都是样他们都是输出重定向命令说通俗点就是把前面命令输出写入到个文件中这两个命令唯区别是>会清除掉原有文件中内容后把新内容写入原文件而>>只会另起行追加新内容到原文件中而不会改动其中原有内容例十 5: echo @echo off > a.bat echo echo This is a pipeline command example. >> a.bat echo echo It is very easy? >> a.bat echo echo Believe your self! >> a.bat echo pause >> a.bat echo exit >> a.bat 依次在DOS提示符下输入以上各行命令行个回车将在当前目录下生成个a.bat文件里面内容如下: @echo off echo This is a pipeline command example. echo It is very easy? echo Believe your self! pause exit 看到这里你得到了多少信息?1、可以直接在DOS提示符下利用echo命令写入功能编辑个文本而不需要专门文本编辑工具;2、管道命令>和>>区别如上所述如果这里只用>命令来完成上面操作最后也会生成个a.bat但里面内容就只剩下最后行exit了所以>和>>般都联合起来用除非你重定向输出只有行那么就可以只用>了结合例再仔细体会输出重定向管道命令>和>>使用方法 13、<、>&、<& 这 3个命令也是管道命令但它们般不常用你只需要知道下就ok了当然如果想仔细研究话可以自己查下资料 <输入重定向命令从文件中读入命令输入而不是从键盘中读入 >&将个句柄输出写入到另个句柄输入中 <&刚好和>&相反从个句柄读取输入并将其写入到另个句柄输出中 有关这 3个管道命令举例在后面批处理脚本精妙应用中还将涉及到 下面介绍组合命令:&、&&、|| 组合命令顾名思义就是可以把多个命令组合起来当个命令来执行这在批处理脚本里是允许而且用非常广泛它格式很简单----既然现在已经成了个文件了那么这多个命令就要用这些组合命令连接起来放在同行----批处理认行不认命令数目组合命令作用就如同给爱人陪不是说句是说说十句也是说不次把好话都说了出来效果可能会好些----当然得排除种特殊情况:这些话是否有先后顺序有些话是否可以同时说在批处理脚本里也样有些时候某些命令是不能同时执行后面给你说 刚刚又送走了个同学人去楼空感觉越来越明显望着空荡荡床铺平日里喧闹宿舍就只剩下我个人了整个世界只有那个平时令人非常讨厌老鼠这时候才显得可爱起来----只有它会陪着我在这不敢开灯漆黑夜里----个连期末考试都应付不了失败男人失败!我感到快要呼吸不过来这种失败压力简直令我窒息简直让我手接收不到大脑信号简直让这篇未完成教程夭折但我能怪谁? 忙碌了学期要过年了却挂了科失败;挂了科也倒罢了竟然个人拖全班后退失败中失败;更失败是在这最失落时候竟然找不到个人可以倾诉;然而最失败是突然发现自己竟然如此脆弱如此耐不住寂寞不过这倒也解开了心中疑惑很久个问题:为什么明知道那段情是个旋涡却还心甘情愿往里面跳----这就是青春风样年龄火样不安心不再爱了我不要再个人时候苦苦等待;不再爱了我不要在你给囚笼里怜悯爱;不再爱了我不要在别人视线里如此可笑;不再爱我不再爱就算塌下来我也要个人扛着头不能低腰不能弯不能喘息不能倾诉虽然失败但还是男人是男人就不能向困难低头! 14、& 这可以说是最简单个组合命令了它作用是用来连接n个DOS命令并把这些命令按顺序执行而不管是否有命令执行失败例十 6: copy a.txt b.txt /y & del a.txt 其实这句和move a.txt b.txt效果是样只不过前者是分了两步来进行(在后面还将涉及到具体使用哪种思路方法问题)这个命令很简单就不多费口舌了唯需要注意点是这里&两边命令是有执行顺序从前往后执行 15、&& 切记这里介绍几个命令都是组合命令所以他们前后都必须都有其他命令(要不如何组合?)这个命令也不例外它可以把它前后两个命令组合起来当个命令来用和&命令区别的处在于它在从前往后依次执行被它连接几个命令时会自动判断是否有某个命令执行出错旦发现出错后将不继续执行后面剩下命令这就为我们自动化完成些任务提供了方便例十 7: dir 文件://1%/www/user.mdb && copy 文件://1%/www/user.mdb e:\backup\www 如果远程主机存在user.mdb则copy到本地e:\backup\www如果不存在当然就不执行copy了这句对搞网管朋友是否有点用呢?呵呵其实它和下面这句作用是样: exist 文件://1%/www/user.mdb copy 文件://1%/www/user.mdb e:\backup\www 至于你喜欢用哪个就随便了我没办法判断dir和两个命令哪个执行效率更高所以不知道用哪个更好呵呵 你是否还记得“有些命令是不能同时执行”?你是否相信这句话?当然得相信不信就给你出道题:把C盘和D盘文件和文件夹列出到a.txt文件中你将如何来搞定这道题?有朋友说这还不是很easy问题吗?同时执行两个dir然后把得到结果>到a.txt里就ok了嘛看例十 8: dir c:\ && dir d:\ > a.txt 仔细研究下这句执行后结果看看是否能达到题目要求!错了!这样执行后a.txt里只有D盘信息!为什么?就这里&&命令和>命令不能同时出现个句子里(批处理把行看成个句子)!!组合命令&&优先级没有管道命令>优先级高(自己整理总结不妥地方请指正)!所以这句在执行时将本分成这两部分:dir c:\和dir d:\ > a.txt而并不是如你想这两部分:dir c:\ && dir d:\和> a.txt要使用组合命令&&达到题目要求必须得这么写: dir c:\ > a.txt && dir d:\ >> a.txt 这样依据优先级高低DOS将把这句话分成以下两部分:dir c:\ > a.txt和dir d:\ >> a.txt例十 8中几句差别比较特殊值得好好研究体会下 当然这里还可以利用&命令(自己想下道理哦): dir c:\ > a.txt & dir d:\ >> a.txt 0
相关文章
读者评论
发表评论 |