《windows批管理计划初级教育材料.doc》由会员分享,可在线阅读,更多相关《windows批管理计划初级教育材料.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、前一阵子使用WIN7的时候,忽然出现图标缓存的问题。去网上搜了下解决方案,发现一个比较好的处理步骤。原文我已经忘记了,后来在年三十的晚上,顿觉很无聊,就按照印象中的代码,写了一个小的批处理文件。具体参考(此处插入百度文库的那篇文章地址)。后来觉得批处理挺好玩的,趁在家休息的这些日子,系统学习一下批处理的语法以及应用。批处理命令通俗的讲就是平时我们见到的那些.bat为后缀的文件,它们可以不断的重读执行命令,实现windows的自动管理,可以将用户从重复、繁琐、复杂的管理任务中解放出来,事半功倍。Windows中常用的批处理程序应用范围主要是:文件/文件夹管理、系统启动与关闭、个性化桌面环境、个性
2、化IE、个性化资源管理器、系统优化、系统维护与管理、系统安全、网络管理与安全、组策略与MMC的应用和其他一些高级应用。一般而言,创建批处理文件最好的方式是使用记事本编辑保存文件。即在记事本中写代码,然后保存的时候以.bat作为后缀即可。看一个例子,以初步接触批处理小程序。为演示方便,PC机选择目前最为大众化的Microsoft Windows XP 作为操作系统。(1)在windows下按【Win+R】键,在弹出的运行对话框中输入notepad(2) 在文本文件里输入(3) 保存批处理文件(4) 接下来就是运行这个批处理文件。初学者编写的小程序推荐在DOS下面运行,等已经可以独立的编写稍微复杂
3、程序的时候在找到这个批处理文件,然后直接打开就可以了。在windows下按【Win+R】键,在弹出的运行对话框中输入cmd,并转到存储Demo_1.bat的目录下,这里就是指的是D盘。运行Demo_1.bat,就会出现下面的结果如果直接选择打开Demo_1.bat,就会出现下面的界面 所以你会发现,这种直接打开的方式不仅操作简单,而且界面简洁,但是一开始最好从DOS下面运行比较好,究竟为什么,你会在开始的几个小程序里体会到。在学习批处理程序语法的时候,有一种非常便利的方式。比如下面要讲的第一个语法,echo的使用,我们可以使用下面的方法来获取命令的格式以及用途。(1) 新建一个批处理文件,具体
4、的内容如图所示。(2) 在DOS下运行,得到下面的结果这样我们就获得了echo命令的语法和用途。授人以鱼不如授之以渔,掌握这个方法之后,即使长时间没写批处理小程序,我们依旧能够在最短的时间里回忆起相关的语法以及命令。一些常用的命令有:echo、goto、pause、call、start、rem、if、set、setlocal、shift、for、通配符(*、?)、管道符(|)、重定向符(、)等等。在接下来的章节中,我将简单的介绍下这些命令的使用方法。echo命令语法及应用echo命令可用于在屏幕显示相关的文字信息,起到提示和说明的作用,还可用于控制批处理文件在执行的过程中是否回显(此处插入回显
5、的定义)。DOS帮助里这么形容:显示信息,或将命令回显打开或关上。 ECHO ON | OFF ECHO message要显示当前回显设置,键入不带参数的 ECHO。如果是控制回显,那么则用到上一条的语法。echo on表示回显打开,echo off表示回显关闭。示例如下:Demo_3.bat: /这是回显打开的情景。Code3:Result3:Demo_4.bat /这是回显关闭的情景Code4:Result4:通过对比,很显然的可以看出差别。回显关闭的时候,echo和pause所引起的命令都不会显示在结果中,反之则会显示。由此可以看出回显是指把命令显示在结果中。但是仔细对比会发现一个问题:
6、echo命令可以控制批处理命令中其他命令是否回显,但却不能控制命令本身。从结果中可以看出,无论是否关闭命令回显功能,批处理中的echo on/off命令都会出现在屏幕中。为了解决这个问题,我们继续看命令的使用。 命令语法及应用命令用于禁止当前执行的命令回显在屏幕上。不受echo命令设置效果的影响,且命令本身不会显示在屏幕上。这个命令是一个非常简单的命令,在DOS帮助里是找不到的。命令格式: command参数说明:command:要屏蔽回显的命令当命令不加任何参数执行的时候,将不产生任何效果对于Demo_4做一些修改,得到以下结果Code5:Result5:对比Result5可以清晰的看到D:
7、/echo off已经不见了。echo与命令的主要区别在于:命令只对当前命令行起作用,且不受echo命令设置影响;echo命令则影响设置之后的所有命令,一直到出现另一个echo命令改变回显的状态为止。pause命令的语法及应用pause命令用于暂停批处理的执行并给出提示信息,然后用户决定是继续执行还是中断执行。命令格式:pause参数说明:此命令没有参数。当命令运行后,会中断执行的语句,并显示以下语句请按任意键继续.。演示如下Demo_6.bat:Code6:Result6:当命令运行到pause处的时候会暂停执行,并给出了请按任意键继续.的提示信息。按键盘上的任意键,即可继续执行后面的命令,
8、若按下Ctrl+C键,则可直接中断批处理的执行,返回到命令行的状态。goto命令的语法及应用goto是一个流程控制转向命令,用于控制批处理中的命令执行流程。先来看看DOS帮助下的解释:将 cmd.exe 导向到批处理程序中带标签的行。GOTO label label 指定批处理程序中用作标签的文字字符串。标签必须单独一行,并且以冒号打头。、 看一个示例:Code9:Result9:可以看出,当执行到goto语句时,直接跳过下面的echo语句,转到last处,并接着运行last之后的所有语句,一直到结束。标识符中不能含有逗号、冒号等,但可以使用空格。标识符的有效长度为最多8个字符,如果多于8个字
9、符则只识别前八个字符。call命令语法及应用call命令可以在批处理程序中调用另一个批处理程序,也可调用指定标号之后的所有命令。命令格式:CALL drive:pathfilename batch-parameters参数解释:batch-parameters 指定批处理程序所需的命令行信息。看一个示例:Code10:Result10:Call命令在使用标号时必须加上:号,而goto语句中则不需要添加。此外,call命令转向标号并执行到文件结束时会返回到调用处并继续执行剩下的命令,而goto语句跳转后不再返回。if命令语法及应用if命令通过条件来决定批处理程序应该如何执行。在编写复杂的批处理程
10、序时,if是一个必不可少的命令。先来看看DOS帮助里面的描述:IF NOT ERRORLEVEL number commandIF NOT string1=string2 commandIF NOT EXIST filename command NOT 指定只有条件为 false 的情况下, Windows XP 才 应该执行该命令。 ERRORLEVEL number 如果最后运行的程序返回一个等于或大于 指定数字的退出编码,指定条件为 true。 string1=string2 如果指定的文字字符串匹配,指定条件为 true。 EXIST filename 如果指定的文件名存在,指定条件为
11、 true。 command 如果符合条件,指定要执行的命令。如果指定的 条件为 FALSE,命令后可跟一个执行 ELSE 关键字后的命令的 ELSE 命令。ELSE 子句必须在 IF 之后出现在同一行上。例如: IF EXIST filename. ( del filename. ) ELSE ( echo filename. missing. )因为 del 命令需要用一个新行终止,以下子句不会有效:IF EXIST filename. del filename. ELSE echo filename. missing由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也不会有
12、效: IF EXIST filename. del filename. ELSE echo filename. missing如果都放在同一行上,以下子句有效: IF EXIST filename. (del filename.) ELSE echo filename. missing其中,比较运算符可以是: EQU - 等于 NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于来看一个示例:Code11:Result11:如果这么写,那就会出现错误,至于原因在上面引述的DOS帮助里已经写得很清楚了。Code12:Result12:若if命令中
13、带有else子命令,else子命令一定要与if中的最后一个命令在一行,否则会出现错误。此外,当if或else后面跟有多条命令时,应该用小括号将其括起来。for命令语法及应用for命令是批处理中一个功能强大且相对复杂的命令,它可对一组不同的文件或数据进行循环处理。照旧,看看DOS帮助里面的内容:FOR %variable IN (set) DO command command-parameters %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参
14、数或命令行开关。在批处理文件中使用 FOR 命令时,指定变量请使用 %variable而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.下面,我们来看一个示例:Code13:Result13:在循环体中可对for后变量直接引用,这种引用与使用set命令定义的变量不同,for后的变量区分大小写。Shift语法及应用Shift命令用于更改批处理文件参数的方式,如指定起始处理参数的位置。SHIFT /n如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告命令从第 n 个参数开始移位;n 介于零和八之间。例如: SHIFT /2会将 %3 移位到 %
15、2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。看一个示例:Code14:Result14:符号%0%9专用于批处理从命令行获得的参数,依次代表命令行的相应参数。rem命令语法及应用rem命令是一个注释命令,用于在批处理中加入相关的说明信息。这些说明信息可以帮助读者理解批处理的功能。命令格式:rem comment参数说明:comment:指定要作为注释的任何字符串演示程序如下:Code7:Result7:可以看出注释的部分只有在代码中才可以看到,结果是不显示的。在使用rem命令的时候应该将回显状态关闭,否则会将rem命令的整行信息输出到屏幕。start命令语法及应用Start命
16、令用于重新启用一个新的命令行窗口,然后在新的窗口中执行指定的程序或命令。在DOS下面查看帮助信息:启动另一个窗口运行指定的程序或命令。START title /Dpath /I /MIN /MAX /SEPARATE | /SHARED /LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL /WAIT /B command/program parameters title 在窗口标题栏中显示的标题。 path 起始目录 B 在不创建新窗口的情况下开始应用程序。 除非 启动 C 处理,否则该应用程序会忽略 C 处理; B
17、reak 是唯一可以中断该应用程序的方式 I 新环境是传递给 cmd.exe 的原始环境, 而不是当前环境 MIN 开始时窗口最小化 MAX 开始时窗口最大化 SEPARATE 在分开的空间内开始 16 位 Windows 程序 SHARED 在分共享的空间内开始 16 位 Windows 程序 LOW 在 IDLE 优先级类别开始应用程序 NORMAL 在 NORMAL 优先级类别开始应用程序 HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 REALTIME 优先级类别开始应用程序 ABOVENORMAL 在 ABOVENORMAL 优先级类别开始应用程序我们来看一个示
18、例:Code8:Result8:这时候在第二个窗口中输入命令exit,则会正常返回到第一个窗口中。如果直接关闭第二个窗口,则会出现这种结果,可以看到第一个窗口中的信息没有显示完整,也就是说部分命令没有被执行,所以推荐用命令离开窗口以正常关闭,避免直接关闭,养成良好的习惯。set语法及应用set专门用来创建、设置、查看或者删除环境变量。对于一些功能复杂的批处理程序,自定义变量是不可缺少的。DOS帮助里关于set命令的描述:SET variable=string variable 指定环境变量名。 string 指定要指派给变量的一系列字符串。要显示当前环境变量,键入不带参数的 SET。如果命令扩
19、展名被启用,SET 会如下改变:可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配SET 命令已使用的名称的所有变量的值。例如: SET P会显示所有以字母 P 打头的变量如果在当前环境中找不到该变量名称,SET 命令将把 ERRORLEVEL设置成 1。SET 命令不允许变量名含有等号。下面来看一个示例:Code15:Result15:所以,从例子中可以看出set命令就是给一个变量赋值,当使用set /a 命令的时候,表示赋得是可求值的数字表达式。另外,批处理文件中使用变量的时候,应该在变量名前后分别加上一个百分号,否则无法正确使用变量。setlocal语法及应用setlocal命
20、令可在批处理程序运行时设置自身的临时变量,且不会影响到系统的变量环境设置。在DOS帮助里有如下的描述:开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。看一个例子:Code16:Result16:Setlocal必须与endlocal命令联合使用,endloacl命令用于结束临时变量环境并回到系统变量环境。通配符(*、?)的应用*代表任意多个字符(包括零个字符),?代表任意多个字符。来看一个简单的示例:Code17:Result17:重定向符(、)的应用重定向符号,用于控制数据的输入或输出方式。及符号的左边是数据源,会替换目的数据,而符号只是将数据源添加到目标数据之后。下面来看例子:Code18:Result18:管道符(|)的应用管道符|将一个命令的输出数据提取出来,然后将提出的数据作为另一个命令的输入。下面来看示例:Code19:Result19: