bluewing009 bluewing009
关注数: 38 粉丝数: 85 发帖数: 1,411 关注贴吧数: 12
【教学】 6.复制文件:copy     关键词:复制 copy 命令         copy,中文含义为“复制”,一个很容易见名知意的命令,它的作用是复制文件,用法十分简单:copy 源文件 目的路径。      假设,你需要把d:\test\test.txt这个文件复制到D盘根目录下,那么,使用 copy d:\test\test.txt d:\ 就可以轻易办到。      当然,这是最简单的情形,在实际使用中,还是会碰到十分复杂的情况的。      如果D盘根目录下已经存在了一个名为test.txt的文件,那么,复制过去的时候,copy命令就会提示你是覆盖原文件、是放弃复制还是覆盖所有文件。如果你在批量复制的时候,一概覆盖原文件,那么,一个一个地选择十分麻烦,这个时候,你可以使用不加提示就覆盖原文件的参数 /y (相当于自动选择了Yes选项),完整的命令为 copy /y d:\test\test.txt d:\ 。      如果复制的时候,你还需要把复制文件改个名,比如把test.txt改为1.txt的时候,可以直接使用:copy d:\test\test.txt d:\1.txt 这样的命令,也就是说,在指定目的路径的时候,直接指定文件名,那么,新的文件名就是源文件复制之后的名字,所以,此时 copy 可认为“复制并重命名为”。      如果要复制的路径带有空格、&等特殊符号的时候,请使用引号把这些特殊字符括起来,比如: copy "d:\Program Files\test.txt" "d:\P&Gtest"      copy命令除了“复制”文件的功能外,还有一个绝活:合并多个文件为一个文件,具体的格式为:copy 文件1+文件2+文件3+…… 目的路径\新文件名 。例如:copy d:\test1.txt+d:\test2.txt d:\test\test.txt,那么,就把D盘根目录下的test1.txt和test2.txt两个文件的内容合并为test.txt,并保存到d:\test目录下。      copy 还有一些参数,但是常用的就上面的用法,更多的用法请在命令行窗口中使用 copy /? 来查询,很容易上手的。      必须注意的是,copy只能复制文件,对于文件夹的复制,则需要另请高明,动用xcopy来复制。xcopy是copy的高级版本,有更丰富的参数,能实现更加复杂的功能,通吃文件和文件夹的复制,以后将另行介绍,在这里就不展开讲解了。                                                                                          转载自:bathome 论坛
【教学】 5.流程跳转:goto      关键词: 跳转 goto 命令      一般的批处理命令,都是按照自上而下的流程逐行执行的,也就是说,只有第一行的命令执行了之后,才可能执行第二行,第二行执行完之后,再执行第三行……如此依次执行。      如果对不同的情况,需要执行不同的既定操作,若还是按照常规的执行流程的话,是无法完成任务的,这个时候,就需要引入流程跳转的概念,使用流程跳转语句 goto 了。流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块。      先来看个例子:假设需要判断用户输入的是A还是B,代码可以写成这样: -------------------代码开始------------------ @echo off set /p input=请输入字母A或B: if "%input%"=="A" goto A if "%input%"=="B" goto B pause exit :A echo 您输入的字母是A pause exit :B echo 您输入的字母是B pause exit -------------------代码结束------------------      按照一般的执行流程,所有的代码都会自上而下逐行执行一次,结果将显示"您输入的字母是A"和"您输入的字母是B"这两行内容,很显然,这是达不到我们的要求的;但是,实际的结果是:如果您输入的字母非A即B,则结果只会显示"您输入的字母是A"或者"您输入的字母是B";也就是说,代码的执行顺序发生了改变,不再一成不变地自上而下逐行执行了:当输入字母A后,将执行第一条if语句,此条语句执行后,将跳转到标签段:A,从而绕过了第一条if语句和:A之间的所有代码行;当输入字母B后,将执行头两条if语句,当执行完第二条if语句后,将跳转到标签段:B,从而绕过了第二条if语句和:B之间的所有代码行。      从上面的例子可以看到,要让goto语句起作用,还需要:A或:B之类的标签段的配合。所谓的标签段,就是这样的一些代码块:在首行上以单个冒号打头,其后紧跟一串字符,第二行及其之后的所有行为代码语句行。在这里,第一行的冒号是标签标志,紧跟它之后的字符串是标签名,两者合称标签。goto语句后面的部分为标签名,指引着该语句执行完之后该跳到转何方,标签则接收goto语句的跳转指令,引导着goto语句的后续操作。goto语句和标签互相呼应,在实现流程跳转时相辅相成,缺一不可。      下面说一下使用跳转语句goto的注意事项:      1、goto语句和标签要互相呼应,不能只有goto语句而没有相应的标签段,否则,程序将找不到相应的标签段而直接error退出;只有标签段而没有goto语句是允许的,但不能实现流程跳转功能,从代码精简的角度来看,有标签段而没有goto语句,则此标签是多余的,可以精简掉;      2、若有多个标签段,则需要注意标签段之间是否需要添加合适的退出语句来终止程序继续向下执行,这是很多新手很容易犯错的地方,需要谨慎。以上面这段代码为例,如果去掉:A和:B之间的exit语句,那么,当输入字母A之后,结果将同时显示"您输入的字母是A"和"您输入的字母是B"这两行内容,而保留exit语句将只会在显示"您输入的字母是A"后,按任意键推出批处理程序,因为批处理是自上而下逐行执行的,即使用goto语句跳转之后,在新的位置上,这一执行流程仍然会保持,直到碰上另一个流程跳转语句,执行过程并不会在两个标签段之间自动终止。      3、标签名只可以使用常量,而不能使用变量;      4、若有同名的标签段,将执行位于最顶层的标签段,其后的标签段是否得到执行,将视具体的情况加以处理。
【教学】 4.条件判断:if      关键词: 判断 if 命令           if用于条件判断,适用于以下情形:      1、判断驱动器、文件或文件夹是否存在,用 if exist 语句;      2、判断某两个字符串是否相等,用 if "字符串1"=="字符串2" 语句;      3、判断某两个数值是否相等,用 if 数值1 equ 数值2 语句;      4、判断某个变量是否已经被赋值,用 if defined str 语句;      if语句的完整格式是这样的:if 条件表达式 (语句1) else (语句2)。它的含义是:如果条件表达式成立,那么,就执行语句1,否则,将执行语句2。      对于以上四种情形,可以分别使用如下代码:      1、if exist d:\test.txt (echo D盘下有test.txt存在) else (echo D盘下不存在test.txt)      2、if "abc"=="xyz" (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)      3、if 1 equ 2 (echo 1等于2) else (echo 1不等于2)      4、if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)           判断字符串是否相等的时候,if会区分大小写,比如,单纯的if语句会认为字符串abc和字符串Abc不相同,若不想区分大小写,则需要添加 /i 开关,使用 if /i "字符串1"=="字符串2" 的格式;另外,等于符号是连续的"=="而非单独的"="。      判断两个数值之间的大小关系,除了等于用equ之外,还有其他的关系符号,所有适用于if语句的关系符号见下表:      中文含义     关系符      英文解释       等于         equ         equal       大于         gtr       greater than     大于或等于     geq      greater than or equal       小于         lss       less than    小于或不等于    leq      less than or equal      不等于        neq        no equal      if语句还有一个精简格式:if 条件表达式 语句,它的含义是:如果条件表达式成立,将执行语句,否则,什么也不做。
【教学】 3.内容重定向:>和>>      关键词: 重定向 >>,> 命令           当我们在cmd窗口中查询某条命令信息的时候,信息是显示在命令行窗口中的,命令行窗口关闭后,这些信息就看不到了,如果下次还想看,又得在命令行窗口中输入查询命令,比较繁琐。      有没有办法把显示在命令行窗口中的帮助信息保存下来呢?答案是肯定的,并且有不止一种答案。      稍微繁琐一点的办法就是复制命令行窗口中的信息,然后粘贴到文本中保存起来。这个操作比较繁琐的:在命令行窗口点击右键,然后选择“标记”,用鼠标拉出复制范围,然后敲回车(同样,Ctrl+C复制 也可以),最后,粘贴到文本中去。      高效的办法就是:使用重定向符号,把原本输出到cmd窗口中的信息重定向到文本文件中去。      重定向符号有两个:>和>>。它们的作用都是改变各种信息的输出方向,把信息输出到指定的地方去——各种提示信息默认是输出到屏幕上去的。例如:我们上节使用到的 tree>list.txt,这条命令语句就把 tree 命令的运行结果重定向到了list.txt文件中,tree>nul 就把 tree 命令的提示信息重定向到了空设备中去(nul表示空设备,通常,这种 >nul 空定向应用于屏蔽结果回显,如 copy 的“1个文件已经成功复制”等)。      想看看cmd中都有哪些基本命令吗?在cmd窗口中输入 help 就可以看到了;如果想把这些基本命令信息保存下来,请使用 help>d:\list.txt ,然后,到D盘根目录下找到list.txt文件打开即可。      >和>>虽然都起到重定向提示信息的作用,但是,它们的作用稍有差别。      单个的>表示以覆盖方式重定向提示信息,也就是说如果目的地原来有内容,将把原来的内容清除掉,用新内容填充。      >>表示以追加的方式重定向提示信息,也就是说,如果目的地原来有内容,原有的内容将保持不变,在原有内容之后追加新内容。      例如:假设d:\test.txt中的内容是:I Love bat。那么,在cmd窗口中,分别使用如下两条语句:echo me,too>d:\test.txt和echo me,too>>d:\test.txt,将会发现,使用第一条语句之后,test.txt中只有一行内容:me,too,而使用第二条语句之后,test.txt中将有两行内容,分别是I Love bat和me,too。
【教学】 2.以树形格式罗列文件:tree    关键词: 关系树 tree命令      tree ,在英语中的基本含义是“树”,在cmd中,tree命令的功能是以树形格式罗列文件。      当你向别人展示你自己所做光盘的内容的时候,或者是罗列你硬盘上某个目录下的资料的时候,tree命令显得相当方便,并且能让你展示的内容层次分明,井井有条。      那么实际运行结果如何呢?请使用这条命令:tree>list.txt,这样,所有的信息都保存到list.txt文件中去了。      更多的命令,请在cmd窗口中用 tree /? 查询(其实就两个参数)。      很可能只是一条简单的命令,只是一眨眼的工夫,就解决了你的大问题,这就是cmd的简洁,这就是cmd的力量!      顺便温习一下cd命令。以下是我运行的结果: 文件夹 PATH 列表 卷序列号为 0006EE44 20A1:E2E6 E:. ├—bluewing009 │   ├—0. │   └—畸形文件夹 ├—批处理 │   └— ├—跑跑卡丁车 ├—电影 │   ├—杀人宝盒720p │   ├—X战警四部曲 │   ├—[天降奇兵][1280高清收藏版] │   ├—变形金刚二部合集 │   ├—名侦探柯南219 │   ├—后天 │   ├—我是传奇 │   ├—暮光之城 │   ├—木乃伊三部曲 │   ├—神奇四侠 │   ├—蝙蝠侠前传 │   └—街头霸王:春丽传 └—音乐      ├—Music      └—音乐
【教学】 1.目录跳转:cd      关键词: 切换目录   cd,cd. ,cd..           当我们需要处理不同路径下的文件的时候,很可能需要切换目录,这个时候,可以考虑使用目录跳转命令cd。      例如,我们打开命令行窗口的时候,一般是这样操作的:在桌面左下角找到“开始”菜单,打开“运行”,输入“cmd”,回车。这个时候,命令行窗口默认的当前目录位于当前用户所在的路径下,比如:C:\Documents and Settings\Administrator。      一般而言,这个目录下并没有我们想要处理的文件,我们很可能需要跳转到其他目录,比如说:C盘根目录,这个时候,我们就需要使用cd来实现目录的跳转了:cd c:\。           cd的全称是Change Directory,直译为改变文件夹,也就是跳转目录、切换路径的意思。它后面可以接驱动器符号、完整路径和相对路径。从它的全称可以得知,它不能操控文件,而只能作用于驱动器或文件夹。例如,我们使用 cd c:\boot.ini 这个命令来跳转(boot.ini是文件而非文件夹),就会出现“目录名无效”的错误(补充:U盘免疫用的那个autorun.inf却是文件夹哦)。           如果要跳转到当前目录的根目录下的话,可以使用一条简单的命令:cd\;同理,当前目录为%cd%(下面会讲到)。继续跳转,cd c:\windows\temp,跳转到临时目录下。      此时,如果想回到上一层目录windows,可以使用这条命令:cd..。           想想看,如果执行 cd. 会发生什么情况?结果,目录没有发生跳转,原地不动。利用这个原理,可以用 cd.>test.txt 来构造0字节的文本文件(补充:echo.>test.txt一样)。           所以,在cmd中,.、..和\表示相对路径,.是当前目录,..是上一层目录,而\表示根目录。           那么如何跨分区跳转呢?从当前目录下跳转到不同分区路径d:\的时候,cd d:\没有成功,当前目录没有发生改变;当添加了一个参数 /d 之后,命令成功地执行了。要跳转到不同分区的时候,需要添加强制跳转参数 /d 。但是,如果进入的是当前目录的子目录,则可以不使用 /d 参数。这一点是很容易被大家忽略的,希望能引起足够的重视。      驱动器冒号后添加反斜杠与否的差别      当输入的是当前驱动器号+冒号 cd C: 的时候,将显示当前目录的完整路径;当输入的是当前驱动器号+冒号+反斜杠 cd C:\ 的时候,将跳转到当前路径的根目录下。      CD 的另一个非常有价值的用途是:显示当前的完整路径,一般用通过 %cd% 加以引用。如下图所示。此时,CD 作 Current Directory 解释,即“当前文件夹”。
autorun.inf 启动类病毒扫尾处理 autorun.inf启动类病毒大家应该不陌生。 该病毒会在U盘建立autorun.inf文件,把U盘根目录下的文件夹隐藏,然后建立同名的快加方式或者exe。 尽管网上游大量专杀,但是百度知道和soso问问仍然有大量用户询问该病毒如何处理。 主要集中在文件夹如何恢复的问题上。 下面bat可对该病毒的查杀做些扫尾工作,分享下。 [code] @echo off mode con cols=80 lines=25 title   autorun病毒专杀 setlocal enabledelayedexpansion color 3F echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ echo ☆                                                                           ☆ echo ★                   autorun.inf 病毒处理工具                                 ★ echo ☆                                                                           ☆ echo ★                                              VBT - 九 影 bluewing009       ★ echo ☆                                                                           ☆ echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★ echo. echo. echo. echo. echo    说明:   可处理.exe和.lnk等 autorun.inf启动类U盘病毒。 echo. echo    作用: 删除病毒,恢复文件夹正常属性,解除系统隐藏,建立免疫文件。 echo. echo                把文件放置在U盘根目录下运行哦 ~ ~ ~ echo. echo 目前工作位置:%~dp0
首页 1 2 下一页