工作过程中经常需要用的批处理文件,虽然规则简单,但是以往也没有好好学习过,现在才发现,批处理的功能还真是挺强大的,呵呵。

这里做一点总结,作为笔记:

1. echo

格式:echo 你要输出的信息

如果在echo命令前加@则可以关闭命令的回显;命令“@echo on”或者“@echo off”可以实现全局的打开和关闭命令回显功能;“echo.”命令实现输入一个回车(换行,.符号可以用,:;/]这些任意符号代替)

格式:echo 回复|命令表达式

通过管道命令 | 把“回复”作为输入传导给后面的“命令表达式”,并作为“命令表达式”的输入。

例:@echo off

echo Y|rd /s c:abc (这样删除的时候,系统会自动输入Y来完成删除确认)

格式:echo 文件内容>文件名;echo 文件内容»文件名

“>”是将内容从头写入文件内,”»”是将内容续写到文件内。

2. rem

格式:rem 注释内容

rem为注释语句,该命令后面的内容不会被执行,但能回显;另外“::”也常用作注释,同rem不同的时,是没有回显功能的,因为命令解释器不认为它是一个有效的命令行,以此来实现注释的。

3. cd

更换工作路径,这个……我就不说了,呵呵,“cd ..”是退回上级目录;“cd ”是退回至根目录。

4. dir

格式dir [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]

[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

显示文件和子目录列表。这个就比较复杂了,主要是参数很多:[drive:][path][filename] 指定要列出的驱动器、目录和/或文件;/A 显示具有指定属性的文件;attributes D 目录 R 只读文件 H 隐藏文件 A 准备存档的文件 S 系统文件 – 表示“否”的前缀;/B 使用空格式(没有标题信息或摘要);/C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来停用分隔符显示;/D 跟宽式相同,但文件是按栏分类列出的;/L 用小写;/N 新的长列表格式,其中文件名在最右边;/O 用分类顺序列出文件;sortorder N 按名称(字母顺序) S 按大小(从小到大) E 按扩展名(字母顺序) D 按日期/时间(从先到后) G 组目录优先 – 颠倒顺序的前缀;/P 在每个信息屏幕后暂停;/Q 显示文件所有者;/S 显示指定目录和所有子目录中的文件;/T 控制显示或用来分类的时间字符域;timefield C 创建时间 A 上次访问时间 W 上次写入的时间;/W 用宽列表格式;/X 显示为非 8dot3 文件名产生的短名称。格式是 /N 的格式,短名称插在长名称前面。如果没有短名称,在其位置则显示空白;/4 用四位数字显示年。

5. attrib

格式:attrib [ R | -R] [ A | -A ] [ S | -S] [ H | -H] [[drive:] [path] filename] [/S [/D]]

显示或者更改文件属性。参数:- 清除属性;R 只读文件属性;A 存档文件属性;S 系统文件属性;H 隐藏文件属性;[drive:][path][filename] 指定要处理的文件属性;/S 处理当前文件夹及其子文件夹中的匹配文件;/D 也处理文件夹。

6. del

格式:del [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

删除一个或者多个文件。参数:names 指定一个或数个文件或目录列表。通配符可被用来删除多个文件。如果指定了一个目录,目录中的所有文件都会被删除;/P 删除每一个文件之前提示确认;/F 强制删除只读文件;/S 从所有子目录删除指定文件;/Q 安静模式。删除全局通配符时,不要求确认;/A 根据属性选择要删除的文件;attributes R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 – 表示“否”的前缀。

7. copy

格式:copy source[drive:][path][filename] [destination [drive:][path][filename]]

只能复制文件,不能复制文件夹~在命令最后加“/y”可以实现遇到同名文件时无需确认,直接覆盖。在copy后路径前加上“/b”可以实现多个文件的合并:copy /b 文件1+文件2+……文件N 合并后的文件名。

8. xcopy

格式:xcopy source [destination] [参数….]

复制文件和目录树,这个功能多很多了,参数也非常多,需要特定的再上网查下,这里列出常用的。destination缺省的话,xcopy命令将文件复制到当前目录。

/d [:mm-dd-yyyy] 只拷贝指定时间之后的文件,如果未指定则只有当源文件比目标文件更新时才拷贝;/S 复制非空的目录和子目录。如果省略 /s,xcopy 将在一个目录中工作;/E 复制所有子目录,包括空目录。同时使用 /e、/s 和 /t 命令行选项;/H 复制具有隐藏和系统文件属性的文件。默认情况下xcopy 不复制隐藏或系统文件;/T 只复制子目录结构(即目录树),不复制文件。要复制空目录,必须包含 /e 选项;/Y 禁止提示您确认要覆盖现存的目标文件,可以实现重名文件无须确认直接覆盖。另外需要注意指定 Destination 是文件还是目录。如果 Destination 不包含现有目录且不以反斜杠 () 结尾,会出现提示,询问你指定的目录还是文件,如果要将一个或多个文件复制到一个文件,请按 F(file)。如果要将一个或多个文件复制到一个目录,请按 D(directory)。

9. md

md命令用于创建文件夹,如果缺省路径则是在当前目录下创建,如果路径带有空格或特殊符号的,要用双引号括起来。

10. rd( rmdir )

格式:re [/S] [/Q] [drive:]path

删除一个目录,如果不加任何参数,rd命令只能删除空的文件夹。参数:/S 除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树;/Q 安静模式,带 /S 删除目录树时不要求确认。

11. ren( rename )

格式:ren [drive:][path]filename1 filename2

filename1的路径可以省略,缺省情况下为当前目录。filename2只能是文件名,不能使用任何路径。配合通配符可以实现批量改名,具体的用法比较复杂,需要的时候再查询吧。

12. move

格式:要移动至少一个文件:MOVE [/Y | /-Y] [drive:][path]filename1[,…] destination

要重命名一个目录:MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2

参数:[drive:][path]filename1 指定您想移动的文件位置和名称;destination 指定文件的新位置。目标可包含一个驱动器号和冒号、一个目录名或组合。如果只移动一个文件并在移动时将其重命名,您还可以包括文件名;[drive:][path]dirname1 指定要重命名的目录;dirname2 指定目录的新名称;/Y 取消确认改写一个现有目标文件的提示;/-Y 对确认改写一个现有目标文件发出提示。

当要移动的目标不存在的时候(目录或指定到文件名)move命令相当于重命名并移动;move命令可以跨分区移动文件,却不可以跨分区移动文件夹;对于跨分区移动文件时,如果目标位置存在和将要移动的文件同名时,系统会提示:“文件存在” 最后,命令将不会执行;对于隐藏或系统属性的文件,只有把它们的属性去除后,move命令才会执行。

13. call

call在一个批处理命令中调用另一个批处理文件。不终止现有文件的运行,执行完掉用程序后立即返回;被调用批处理命令必须以bat 为扩展名;调用批处理文件时,可以加上参数(%1-%9)以及环境变量如%baud%;不能使用管道工具及重定向工具。