dos批处理高级教程

上传人:xzh****18 文档编号:42042848 上传时间:2018-05-31 格式:DOCX 页数:91 大小:138.34KB
返回 下载 相关 举报
dos批处理高级教程_第1页
第1页 / 共91页
dos批处理高级教程_第2页
第2页 / 共91页
dos批处理高级教程_第3页
第3页 / 共91页
dos批处理高级教程_第4页
第4页 / 共91页
dos批处理高级教程_第5页
第5页 / 共91页
点击查看更多>>
资源描述

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

1、DOS 批处理高级教程(还不错) 分类: Something about computer 2012-04-14 17:36 5965 人阅读 评论(2) 收藏 举报 doscommandstring 扩展 path 脚本前言本教程主要引用伤脑筋版主的系列文章,同时参考引用英雄教程等其他批处理教程,本文将这些文章合并在一起,并尽量修改得详细而且简单易懂,修改整理也是学习过程,主要目的是方便自己以后查阅。本教程很长啊,需要一定的耐心才能看完,能够看完的话,差不多就是批处理高手了,即使不是高手也是熟手了。本教程还在不断补充之中,当有比较典型的应用技巧时,本教材会将其收入相关的章节之中。本教程适合对

2、 dos 有一定基础的人慢慢学习或查阅。查阅方法:复制目录中的条目,搜索即可。整理者邮箱:,如果你要全文或有好的 dos 使用经验,请你发 email给我,谢谢!目录第一章 批处理基础第一节 常用批处理内部命令简介1、REM 和 :2、ECHO 和 3、PAUSE 暂停4、ERRORLEVEL5、TITLE 设置 cmd 窗口的标题6、COLOR 设置 cmd 窗口前景和背景颜色7、mode 配置系统设备8、GOTO 和 :9、FIND 在文件中搜索字符串10、START 调用外部程序并任其在新窗口自行运行11、assoc 和 ftype12、pushd 和 popd13、CALL 调用批处理

3、程序或命令并等待其执行完毕14、shift15、IF16、setlocal 与 变量延迟17、ATTRIB 显示或更改文件属性18、findstr 在文件中搜索字符串(find 增强版)19、date /t 和 time /t第二节 常用特殊符号1、 命令行回显屏蔽符2、% 批处理变量引导符3、 输出重定向符4、 输出重定向符5、 分号分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序仍会执行。(有人说不会继续执行,其实测试一下就知道了)比如:dir c:;d:;e:;z:以上命令相当于dir c:dir d:dir e:dir f:如

4、果其中 z 盘不存在,运行显示:系统找不到指定的路径。然后终止命令的执行。例:dir c:;d:;e:1.txt以上命令相当于dir c:dir d:dir e:1.txt其中文件 e:1.txt 不存在,但 e 盘存在,有错误提示,但命令仍会执行。为什么?如果目标路径不存在,则终止执行;如果路径存在,仅文件不存在,则继续执行。就说这些了!各位有什么意见请回贴!有什么疑问请到 BAT 交流区发贴!下一节改进!14、() 括号小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行。括号在 for 语句和 if 语句中常见,用来嵌套

5、使用循环或条件语句,其实括号()也可以单独使用,请看例子。例:命令:echo 1 注释行,这是临时文件,用完删除 test.txtecho 11 段 12 段 13 段 14 段 15 段 16 段 test.txtecho 21 段,22 段,23 段,24 段,25 段,26 段 test.txtecho 31 段-32 段-33 段-34 段-35 段-36 段 test.txtFOR /F “eol=; tokens=1,3* delims=,- “ %i in (test.txt) do echo %i %j %kPauseDel test.txt运行显示结果:11 段 13 段 1

6、4 段 15 段 16 段21 段 23 段 24 段,25 段,26 段31 段 33 段 34 段-35 段-36 段请按任意键继续. . .为什么会这样?我来解释:eol=; 分号开头的行为注释行tokens=1,3* 将每行第 1 段,第 3 段和剩余字段分别赋予变量%i,%j,%kdelims=,- (减号后有一空格)以逗号减号和空格为分隔符,空格必须放在最后For 命令例 2:*echo offFOR /F “eol= delims=“ %i in (test.txt) do echo %iPause运行将显示 test.txt 全部内容,包括注释行,不解释了哈。For 命令例 3

7、:*另外/F 参数还可以以输出命令的结果看这个例子echo offFOR /F “delims=“ %i in (net user) do echo %ipause这样你本机全部帐号名字就出来了把扩号内的内容用两个单引号引起来就表示那个当命令执行,FOR 会返回命令的每行结果,加那个“delims=“ 是为了让我空格的行能整行显示出来,不加就只显示空格左边一列!基本上讲完了 FOR 的基本用法了.如果你看过 FOR 的系统帮助,你会发现他下面还有一些特定义的变量,这些我先不讲.大家因该都累了吧!你不累我累啊.所谓文武之道,一张一弛,现休息一下。第三章 FOR 命令中的变量FOR 命令中有一些变

8、量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法!先把 FOR 的变量全部列出来:I - 删除任何引号(“),扩展 %I%fI - 将 %I 扩展到一个完全合格的路径名%dI - 仅将 %I 扩展到一个驱动器号%pI - 仅将 %I 扩展到一个路径%nI - 仅将 %I 扩展到一个文件名%xI - 仅将 %I 扩展到一个文件扩展名%sI - 扩展的路径只含有短名%aI - 将 %I 扩展到文件的文件属性%tI - 将 %I 扩展到文件的日期/时间%zI - 将 %I 扩展到文件的大小%$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展到找到的第一个完全合格的名称。如

9、果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串我们可以看到每行都有一个大写字母“I“,这个 I 其实就是我们在 FOR 带入的变量,我们 FOR语句代入的变量名是什么,这里就写什么.比如:FOR /F %z IN (set) DO echo %z这里我们代入的变量名是 z 那么我们就要把那个 I 改成 z,例如%fI 改为%fz至于前面的%p 这样的内容就是语法了!好开始讲解:一、 I - 删除任何引号(“),扩展 %I这个变量的作用就如他的说明,删除引号!我们来看这个例子:首先建立临时文件 temp.txt,内容如下“1111“2222“3333“4444“44“55“55

10、“55可建立个 BAT 文件代码如下:echo offecho “1111temp.txtecho “2222“temp.txtecho 3333“temp.txtecho “4444“44temp.txtecho “55“55“55temp.txtrem 上面建立临时文件,注意不成对的引号要加转义字符,重定向符号前不要留空格FOR /F “delims=“ %i IN (temp.txt) DO echo %ipausedel temp.txt执行后,我们看 CMD 的回显如下:1111 #字符串前的引号被删除了2222 #字符串首尾的引号都被删除了3333“ #字符串前无引号,后面的引号保

11、留4444“44 #字符串前面的引号删除了,而中间的引号保留55“55“55 #字符串前面的引号删除了,而中间的引号保留请按任意键继续. . .和之前 temp.txt 中的内容对比一下,我们会发现第 1、2、5 行的引号都消失了,这就是删除引号i 的作用了!删除引号规则如下(BAT 兄补充!)1、若字符串首尾同时存在引号,则删除首尾的引号;2、若字符串尾不存在引号,则删除字符串首的引号;3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。龙卷风补充:无头不删,有头连尾删。二、 %fI - 将 %I 扩展到一个完全合格的路径名看例子:把代码保存放在随便哪个地方,我这里就放桌面吧.FOR

12、 /F “delims=“ %i IN (dir /b) DO echo %fipause执行后显示内容如下C:Documents and SettingsAdministrator桌面test.batC:Documents and SettingsAdministrator桌面test.vbs当我把代码中的 %fi 直接改成%iFOR /F “delims=“ %i IN (dir /b) DO echo %ipause执行后就会显示以下内容:test.battest.vbs通过对比,我们很容易就看出没有路径了,这就是“将 %I 扩展到一个完全合格的路径名“的作用也就是如果%i 变量的内容是

13、一个文件名的话,他就会把这个文件所在的绝对路径打印出来,而不只单单打印一个文件名,自己动手动实验下就知道了!三、 %dI - 仅将 %I 扩展到一个驱动器号看例子:代码如下,我还是放到桌面执行!FOR /F “delims=“ %i IN (dir /b) DO echo %dipause执行后我 CMD 里显示如下C:C:我桌面就两个文件 test.bat,test.vbs,%di 作用是,如果变量%i 的内容是一个文件或者目录名,他就会把他这文件或者目录所在的盘符号打印出来!四、 %pI - 仅将 %I 扩展到一个路径这个用法和上面一样,他只打印路径不打印文件名字FOR /F “delim

14、s=“ %i IN (dir /b) DO echo %pipause我就不打结果了,大家自己复制代码看结果吧,下面几个都是这么个用法,代码给出来,大家自己看结果吧!五、 %nI - 仅将 %I 扩展到一个文件名只打印文件名字FOR /F “delims=“ %i IN (dir /b) DO echo %nipause六、 %xI - 仅将 %I 扩展到一个文件扩展名只打印文件的扩展名FOR /F “delims=“ %i IN (dir /b) DO echo %xipause七、 %sI - 扩展的路径只含有短名打印绝对短文件名FOR /F “delims=“ %i IN (dir /b

15、) DO echo %sipause八、 %aI - 将 %I 扩展到文件的文件属性打印文件的属性FOR /F “delims=“ %i IN (dir /b) DO echo %aipause九、 %tI - 将 %I 扩展到文件的日期/时间打印文件建立的日期FOR /F “delims=“ %i IN (dir /b) DO echo %tipause十、 %zI - 将 %I 扩展到文件的大小打印文件的大小FOR /F “delims=“ %i IN (dir /b) DO echo %zipause上面例子中的“delims=“可以改为“delims=“,即不要分隔符十一、 %$PATH

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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