dos批处理高级教程精选合编

上传人:xzh****18 文档编号:46730454 上传时间:2018-06-27 格式:PDF 页数:67 大小:589.13KB
返回 下载 相关 举报
dos批处理高级教程精选合编_第1页
第1页 / 共67页
dos批处理高级教程精选合编_第2页
第2页 / 共67页
dos批处理高级教程精选合编_第3页
第3页 / 共67页
dos批处理高级教程精选合编_第4页
第4页 / 共67页
dos批处理高级教程精选合编_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《dos批处理高级教程精选合编》由会员分享,可在线阅读,更多相关《dos批处理高级教程精选合编(67页珍藏版)》请在金锄头文库上搜索。

1、 DOS 批处理高级教程精选合编 20080331(windows Xp) 前言 本教程主要引用伤脑筋版主()的系列文章,同时参考引用英雄教程等其他批处理教程,本文将这些文章合并在一起,并适当修改,修改整理也是学习过程,力求深刻而又简单易懂,主要目的是方便自己以后查阅。 本教程很长啊,需要一定的耐心才能看完,能够看完的话,差不多就是批处理高手了,即使不是高手也是熟手了。如果连续不停的看完本教程而且理解得差不多,估计人也累趴下了。本教程适合对dos有一定基础的人慢慢学习或查阅。 查阅方法:复制目录中的条目,搜索即可。 目录 第一章 批处理基础 第一节 常用批处理内部命令简介 1、REM 和 :

2、2、ECHO 和 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 ftype 12、pushd 和 popd 13、CALL 14、shift 15、IF 16、setlocal 与 变量延迟 17、ATTRIB 显示或更改文件属性 第二节 常用特殊符号 1、 命令行回显屏蔽符 2、% 批处理变量引导符 3、 重定向符 4、 重定向符 5、 分号 分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序仍会执行。(

3、有人说不会继续执行,其实测试一下就知道了) 比如: dir c:;d:;e:;z: 以上命令相当于 dir c: dir d: dir e: dir f: 如果其中 z 盘不存在,运行显示:系统找不到指定的路径。然后终止命令的执行。 例:dir c:;d:;e:1.txt 以上命令相当于 dir c: dir d: dir e:1.txt 其中文件 e:1.txt 不存在,但 e 盘存在,有错误提示,但命令仍会执行。 为什么?如果目标路径不存在,则终止执行;如果路径存在,仅文件不存在,则继续执行。 就说这些了!各位有什么意见请回贴!有什么疑问请到 BAT 交流区发贴!下一节改进! 14、()

4、括号 小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行。 括号在 for 语句和 if 语句中常见,用来嵌套使用循环或条件语句,其实括号()也可以单独使用,请看例子。 例: 命令:echo 1 注释行,这是临时文件,用完删除 test.txt echo 11 段 12 段 13 段 14 段 15 段 16 段 test.txt echo 21 段,22 段,23 段,24 段,25 段,26 段 test.txt echo 31 段-32 段-33 段-34 段-35 段-36 段 test.txt FOR /F “eo

5、l=; tokens=1,3* delims=,- “ %i in (test.txt) do echo %i %j %k Pause Del test.txt 运行显示结果: 11 段 13 段 14 段 15 段 16 段 21 段 23 段 24 段,25 段,26 段 31 段 33 段 34 段-35 段-36 段 请按任意键继续. . . 为什么会这样?我来解释: eol=; 分号开头的行为注释行 tokens=1,3* 将每行第 1 段,第 3 段和剩余字段分别赋予变量%i,%j,%k delims=,- (减号后有一空格)以逗号减号和空格为分隔符,空格必须放在最后 For 命令

6、例 2:* echo off FOR /F “eol= delims=“ %i in (test.txt) do echo %i Pause 运行将显示 test.txt 全部内容,包括注释行,不解释了哈。 For 命令例 3:* 另外/F 参数还可以以输出命令的结果看这个例子 echo off FOR /F “delims=“ %i in (net user) do echo %i pause 这样你本机全部帐号名字就出来了把扩号内的内容用两个单引号引起来就表示那个当命令执行,FOR 会返回命令的每行结果,加那个“delims=“ 是为了让我空格的行能整行显示出来,不加就只显示空格左边一列!

7、 基本上讲完了 FOR 的基本用法了.如果你看过 FOR 的系统帮助,你会发现他下面还有一些特定义的变量,这些我先不讲.大家因该都累了吧!你不累我累啊. 所谓文武之道,一张一弛,现休息一下。 第三章 FOR 命令中的变量 FOR 命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法! 先把 FOR 的变量全部列出来: I - 删除任何引号(“),扩展 %I %fI - 将 %I 扩展到一个完全合格的路径名 %dI - 仅将 %I 扩展到一个驱动器号 %pI - 仅将 %I 扩展到一个路径 %nI - 仅将 %I 扩展到一个文件名 %xI - 仅将 %I 扩展到一个文件扩

8、展名 %sI - 扩展的路径只含有短名 %aI - 将 %I 扩展到文件的文件属性 %tI - 将 %I 扩展到文件的日期/时间 %zI - 将 %I 扩展到文件的大小 %$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩展到 空字符串 我们可以看到每行都有一个大写字母“I“,这个I其实就是我们在FOR带入的变量,我们FOR语句代入的变量名是什么,这里就写什么. 比如:FOR /F %z IN (set) DO echo %z 这里我们代入的变量名是 z 那么我们就要把那个 I 改成 z,例如

9、%fI 改为%fz 至于前面的%p 这样的内容就是语法了! 好开始讲解: 一、 I - 删除任何引号(“),扩展 %I 这个变量的作用就如他的说明,删除引号! 我们来看这个例子: 首先建立临时文件 temp.txt,内容如下 “1111 “2222“ 3333“ “4444“44 “55“55“55 可建立个 BAT 文件代码如下: echo off echo “1111temp.txt echo “2222“temp.txt echo 3333“temp.txt echo “4444“44temp.txt echo “55“55“55temp.txt rem 上面建立临时文件,注意不成对的引

10、号要加转义字符,重定向符号前不要留空格 FOR /F “delims=“ %i IN (temp.txt) DO echo %i pause del temp.txt 执行后,我们看 CMD 的回显如下: 1111 #字符串前的引号被删除了 2222 #字符串首尾的引号都被删除了 3333“ #字符串前无引号,后面的引号保留 4444“44 #字符串前面的引号删除了,而中间的引号保留 55“55“55 #字符串前面的引号删除了,而中间的引号保留 请按任意键继续. . . 和之前 temp.txt 中的内容对比一下,我们会发现第 1、2、5 行的引号都消失了,这就是删除引号i 的作用了! 删除引

11、号规则如下(BAT 兄补充!) 1、若字符串首尾同时存在引号,则删除首尾的引号; 2、若字符串尾不存在引号,则删除字符串首的引号; 3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。 龙卷风补充:无头不删,有头连尾删。 二、 %fI - 将 %I 扩展到一个完全合格的路径名 看例子: 把代码保存放在随便哪个地方,我这里就放桌面吧. FOR /F “delims=“ %i IN (dir /b) DO echo %fi pause 执行后显示内容如下 C:Documents and SettingsAdministrator桌面test.bat C:Documents and Sett

12、ingsAdministrator桌面test.vbs 当我把代码中的 %fi 直接改成%i FOR /F “delims=“ %i IN (dir /b) DO echo %i pause 执行后就会显示以下内容: test.bat test.vbs 通过对比,我们很容易就看出没有路径了,这就是“将 %I 扩展到一个完全合格的路径名“的作用 也就是如果%i 变量的内容是一个文件名的话,他就会把这个文件所在的绝对路径打印出来,而不只单单打印一个文件名,自己动手动实验下就知道了! 三、 %dI - 仅将 %I 扩展到一个驱动器号 看例子: 代码如下,我还是放到桌面执行! FOR /F “deli

13、ms=“ %i IN (dir /b) DO echo %di pause 执行后我 CMD 里显示如下 C: C: 我桌面就两个文件 test.bat,test.vbs,%di 作用是,如果变量%i 的内容是一个文件或者目录名,他就会把他这文件 或者目录所在的盘符号打印出来! 四、 %pI - 仅将 %I 扩展到一个路径 这个用法和上面一样,他只打印路径不打印文件名字 FOR /F “delims=“ %i IN (dir /b) DO echo %pi pause 我就不打结果了,大家自己复制代码看结果吧,下面几个都是这么个用法,代码给出来,大家自己看结果吧! 五、 %nI - 仅将 %I

14、 扩展到一个文件名 只打印文件名字 FOR /F “delims=“ %i IN (dir /b) DO echo %ni pause 六、 %xI - 仅将 %I 扩展到一个文件扩展名 只打印文件的扩展名 FOR /F “delims=“ %i IN (dir /b) DO echo %xi pause 七、 %sI - 扩展的路径只含有短名 打印绝对短文件名 FOR /F “delims=“ %i IN (dir /b) DO echo %si pause 八、 %aI - 将 %I 扩展到文件的文件属性 打印文件的属性 FOR /F “delims=“ %i IN (dir /b) DO

15、 echo %ai pause 九、 %tI - 将 %I 扩展到文件的日期/时间 打印文件建立的日期 FOR /F “delims=“ %i IN (dir /b) DO echo %ti pause 十、 %zI - 将 %I 扩展到文件的大小 打印文件的大小 FOR /F “delims=“ %i IN (dir /b) DO echo %zi pause 上面例子中的“delims=“可以改为“delims=“,即不要分隔符 十一、 %$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩展

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号