灵活使用批处理文件的参数.doc_第1页
灵活使用批处理文件的参数.doc_第2页
灵活使用批处理文件的参数.doc_第3页
灵活使用批处理文件的参数.doc_第4页
灵活使用批处理文件的参数.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

灵活使用批处理文件的参数(1)大多数命令行实用程序需要额外的信息,如文件名(例如,当使用COPY或DEL命令时)或文件路径(例如当使用CD或MD命令)。这些附加的信息称为参数- 提供了指定命令工作方式的灵活性。还可以向批处理文件添加相同级别的灵活性。要理解其工作原理,首先查看以下示例:ECHO OFFECHO.ECHO The first parameter is %1ECHO The second parameter is %2ECHO The third parameter is %3可以看到,该批处理文件只是通过ECHO命令在屏幕上回显4行内容(第一行只是空白行)。但是,可以发现每个ECHO命令都是以百分号符号(%)和数字结束。输入并保存该批处理文件为PARAMETERS.BAT。然后,为了查看这些不寻常符号的含义,可以在Windows Vista的命令提示符中输入以下命令:parameters Tinkers Evers Chance产生的输出如下:C:parameters Tinkers Evers ChanceThe first parameter is TinkersThe second parameter is EversThe third parameter is Chance在PARAMETERS.BAT中接下来的ECHO命令将产生第一行的输出(在空白行后):ECHO The first parameter is %1当Windows Vista在批处理文件中遇到%1符号时,它会检查原始命令并查找批处理文件名后的第一个词,然后用这个词替换%1。在本例中,parameters后的第一个词是Tinkers,所以Windows Vista将使用它替换%1(这就是批处理文件编程人员称%1为可替换参数(replaceable parameter)的原因)。仅当完成该操作后才能在屏幕上执行ECHO命令行。可替换参数%2的情况也类似,只是在这种情况下,Windows Vista会查找批处理文件名后的第二个词(如本例中的Evers)。注意:如果批处理文件命令的参数超过批处理文件查找的参数,则它会忽略多余的参数。例如,向parameters命令行添加第四个参数将不会对文件操作有任何影响。注意,批处理文件中的可替换参数不能多于9个(从%1到%9),然而存在第10个可替换参数(%0),它用于保存批处理文件本身的名称。提示:如果可替换参数是含有一个或多个空格的字符串,则应该使用引号包含该参数。现在介绍一个现实生活中的例子,考虑下面这个实用且灵活的批处理文件NEWFOLDER.BAT:ECHO OFFCLSMD batchCD batch该批处理文件会在当前文件夹下创建名为batch的新文件夹,然后进入该文件夹中。您可能会惊讶地发现您经常需要这样操作,所以尝试自动执行整个过程很有意义。遗憾的是,这并非最好的运行方式。每次要创建和进入文件夹时都需要设置批处理文件,但是您不应该浪费时间在该操作上,而是可以使用替换参数向NEWFOLDER.BAT添加灵活性:ECHO OFFCLSMD %1CD %1现在,如果想创建和进入新的批处理文件夹,可以输入以下命令:newfolder batchVista会将NEWFOLDER.BAT中的每个%1替换成batch(newfolder后面的第一个词),因此批处理文件仍像以前一样运行。当然这里的区别在于,还可以将其用于其他文件夹。例如,为了创建名为scripts的新文件夹并进入该文件夹,可以使用如下命令: newfolder scripts注意:如果在运行对话框中运行NEWFOLDER.BAT批处理文件,Vista会在保存批处理文件的文件夹中创建新文件夹。改进命令行实用程序因为批处理文件的可替换参数可以像命令行实用程序中的参数那样使用,所以不难创建批处理文件用于模仿甚至改进标准的命令提示符。1. 使DEL命令更安全当使用通配符删除多个文件时,大概会有99.9%的概率会发生命令行删除意外。在错误的位置使用问号标记或在错误的文件夹中使用*.*将导致灾难。注意:符号*和?都是通配符。可以使用?匹配单个字符,也可以使用*匹配任意长度的字符。如果能看到将要删除的文件列表,然后在出现问题时也有取消删除的选项,则会很有帮助。当然,最简单的方式是通过DEL所使用的相同文件说明来运行DIR命令。但是每次输入两个命令并确保?s和*s是否处于正确的位置是件很麻烦的事情。这里可以使用批处理文件,如下(SAFEDEL.BAT)所示:ECHO OFFCLSECHO %0 %1ECHO.ECHO Here is a list of the files that will be deleted:REM Display a wide DIR list in alphabetical orderDIR %1 /ON /WECHO.ECHO To cancel the deletion, press Ctrl+C. Otherwise,PAUSEDEL %1可以像DEL命令那样使用SAFEDEL.BAT。例如,为了在当前文件夹中删除所有的.bak文件,则可以输入以下命令:safedel *.bak以下列表是操作的概要:命令ECHO %0 %1简单地显示了批处理文件名(%0)和用于引用的文件说明(%1)。DIR %1 /ON /W命令用于显示按字母顺序排列的将要删除的文件列表(采用宽格式,这样可以看到更多的文件)。然后批处理文件运行PAUSE命令,这样就可以检查文件。如果确定继续(按任意键),DEL %1命令将开始执行。注意:百分号(%)是在文件名中非常有用的字符,但是如果试图引用已命名的文件,例如PERCNT%.XLS,则会导致问题。因为当命令提示符处理批处理文件时,它会盲目删除任何单独出现作为替换参数一部分的%符号,因此PERCNT%.XLS将变成PERCNT.XLS,从而导致问题。为修复这个问题,当在批处理命令中引用文件时,应使用双百分号(如PERCNT%.XLS)。2. 使用一个步骤更改文件夹和驱动器如果需要更改当前目录到其他驱动器的文件夹上,则可以使用CD命令。先更改到驱动器,然后运行CD命令。使用CDD.BAT可以在一条命令中完成该功能:ECHO OFF%1:CD %2例如,要进入驱动器G的BACKUP文件夹,只要简单地使用如下命令: cdd g backup如果不想输入反斜杠符号,则可以通过添加一些额外的CD命令避免输入:%1:CD %2CD %3CD %4现在,为了进入驱动器G的BACKUP123DATA文件夹,则可以输入以下命令:cdd g backup 123 data3. 从Copy命令中排除文件通配符用于在单条命令中包括多个文件。但是,如何排除某些文件?例如,在WPDOCS文件夹中有各种不同扩展名(如.doc、.txt和.wp等)的文件。如果想复制除扩展名为.txt的所有文件到驱动器A,应如何操作?一种解决方案是:为每个需要的扩展名使用单独的XCOPY命令,但工作量很大(而且可能还会遗漏某种扩展名)。应该使用以下批处理文件代替(名为DONTCOPY.BAT):ECHO OFFCLSATTRIB +H %1ECHO.ECHO Copying all files to %2 except %1:ECHO.XCOPY *.* %2ATTRIB -H %1为了使用该批处理文件将当前文件夹中的除扩展名为.txt外的所有文件复制到驱动器G,可以使用以下命令:dontcopy *.txt g:这里的秘密是DOS不会复制隐藏文件,因此DONTCOPY.BAT使用ATTRIB命令隐藏要忽略的文件。第一个命令ATTRIB +H %1就是用于实现隐藏。现在只需使用XCOPY命令复制所有非隐藏文件(使用*.*)到目标文件夹(%2)。当完成复制后,DONTCOPY.BAT使用另

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论