批处理常用命令及用法大全
说明:本文来自网络,由youxi01整理,由liqiochi修改完善。
阅读本文需要一定的dos基础概念,象:盘符、文件、目录(文件夹)、子目录、根目录、当前目录每个命令的完整说明请加 /? 参数参考微软的帮助文档可以看到,在 /? 帮助里,\命令扩展名\一词会经常出现\命令扩展名\是指相对于win98的dos版本而言,每个命令新增的功能
命令测试环境win2000proSP4win98的命令功能太少,就不作研究了
注:如果对某一命令还不是很熟悉,可以在命令行窗口下输入:命令名/?的方式来获得帮助。
例如:对dir命令的应用不熟悉,可以在命令行窗口下输入:dir /? 参数只列举常用参数。
注:errorlevel,msd,undelete在win7下不存在。
目录
1.echo 和 @回显控制命令 ................................................................................. 3 2.shutdown 关机 .................................................................................................. 3 3.dir显示目录中的文件和子目录列表 ............................................................... 4 4.cd更改当前目录 ................................................................................................ 4 5.md创建目录 ...................................................................................................... 5 6.rd删除目录 ........................................................................................................ 5 7.del删除文件 ...................................................................................................... 5 8.ren文件和文件夹重命名 .................................................................................. 6 9.cls清屏 ............................................................................................................... 6 10.type显示文件内容 .......................................................................................... 6 11.copy拷贝文件(只能复制文件) .................................................................. 6 12.title设置cmd窗口的标题 .............................................................................. 7 13.ver显示系统版本 ............................................................................................ 7 14.label 和 vol设置卷标 ..................................................................................... 7 15.pause暂停命令 ................................................................................................ 7 16.rem 和 ::注释命令 .......................................................................................... 7 17.date 和 time日期和时间 ............................................................................... 8 18.goto 和 :跳转命令 .......................................................................................... 8 19.find (外部命令)查找命令 ................................................................................. 8 20.more (外部命令)逐屏显示 .............................................................................. 9 21.tree显示目录结构 ........................................................................................... 9 22.&顺序执行多条命令,而不管命令是否执行成功 ........................................ 9 23.&&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令 . 9 24.||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令 ... 9 25.|管道命令,前一个命令的执行结果输出到后一个命令 ........................... 10
附:批处理for中的管道转义|,尖号 ..................................................... 10 26.>和>>输出重定向命令 .................................................................................. 10 27.<从文件中获得输入信息,而不是从屏幕上 .............................................. 11 28.%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %* 命令行传递给批处理的参数 .... 11 29.set设置变量 ................................................................................................... 12 30.start ................................................................................................................. 14 31.call ................................................................................................................... 15 32.choice (外部命令)选择命令 ........................................................................... 15 33.assoc和ftype文件关联 ................................................................................ 16 34.attrib................................................................................................................ 16 35.move 把文件或文件夹从A处移动到B处 ................................................. 17 36.xcopy (外部命令)文件拷贝 ............................................................................ 17 37.一些不常用的内部命令 ................................................................................ 18 38.format (外部命令)格式化硬盘 ...................................................................... 18 39.ping (外部命令) .............................................................................................. 19 40.SC (外部命令)服务控制命令 ......................................................................... 19 41.pushd 和 popd 切换当前目录 .................................................................... 19 42.findstr 字符串查找增强 ................................................................................ 19
行首、行尾符规则,即 ^ 和 $ ............................................................... 21 字符集规则,即[class] ............................................................................... 21 减法规则,即[^class] ................................................................................. 21 单词前缀后缀定位规则,即\\
1.判断两个字符串是否相等,if\字符串1\字符串2\command 语句...................................................................................................................... 23 2.判断两个数值是否相等,if 数值1 equ 数值2 command 语句 ........ 24 3.判断判断驱动器,文件或文件夹是否存在,if exist filename command 语句.............................................................................................................. 25 4.判断变量是否已经定义,if defined 变量 command 语句 ................. 26 5.判断上个命令的反回值,if errorlevel 数值 command 语句 ............. 27 补充1:if not 语句 .................................................................................... 28 补充2:IF语句嵌套的写法 ....................................................................... 29 45.for .................................................................................................................... 29
for /f 的基本用法 ....................................................................................... 30 delims= ......................................................................................................... 31 定点提取:tokens= ..................................................................................... 31 跳过无关内容,直奔主题:skip=n ........................................................... 32 忽略以指定字符打头的行:eol=............................................................... 32 如何决定该使用 for /f 的哪种句式?(兼谈usebackq的使用) .............. 32 计数循环:for /l.......................................................................................... 33 46.setlocal enabledelayedexpansion ................................................................... 33 47.call set 变量嵌套变量 ................................................................................... 35
附:转义字符% ........................................................................................... 35
48.位运算符 ........................................................................................................ 36 49.reg ................................................................................................................... 40
2.键值的数据类型。................................................................................. 45 补充概念: 1. dir中的属性 2. 通配符*,? 3. con,prn,nul 4. set中的叹号 5. 控制命令^ 和 > 6. findstr通配符 7. find多重过滤
1.echo 和 @回显控制命令
@ #关闭单行回显
echo off #从下一行开始关闭回显
@echo off #从本行开始关闭回显。一般批处理第一行都是这个 echo on #从下一行开始打开回显
echo #显示当前是 echo off 状态还是echo on 状态 echo. #输出一个\回车换行\,一般就是指空白行 echo hello world #输出hello world
\关闭回显\是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果批处理开始和结束时,系统都会自动打开回显
2.shutdown 关机
/i 显示图形用户界面(GUI)。这必须是第一个选项。 /l 注销。这不能与 /m 或 /d 选项一起使用。 /s 关闭计算机。
/r 关闭并重新启动计算机。
/g 关闭并重新启动计算机。系统重新启动后,重新启动所有注册的应用程序。
/a 中止系统关闭。这只能在超时期间使用。
/p 关闭本地计算机,没有超时或警告。可以与 /d 和 /f 选项一起使用。
/h 休眠本地计算机。可以与 /f 选项一起使用。
/t xxx 设置关闭前的超时为 xxx 秒。有效范围是 0-315360000 (10 年),默认值为 30。如果超时时间大于 0,则默示 /f参数。
/f 强制正在运行的应用程序关闭,不前台警告用户。当为 /t 参数指
定大于 0 的值时,则默示 /f 参数。
3.dir显示目录中的文件和子目录列表
dir #显示当前目录中的文件和子目录
dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 /A 显示具有指定属性的文件。e.g. dir /a:h或dir /ah(冒号可省略) 属性 D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件 S 系统文件 I 无内容索引文件 L 解析点 - 表示“否”的前缀 /B 使用空格式(没有标题信息或摘要)。(没有时间,文件大小和总结,只有文件名)
/O 用分类顺序列出文件。
排列顺序 N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后) G 组目录优先 - 反转顺序的前缀 dir c: /a:d #显示 C 盘当前目录中的目录 dir c:\\ /a:-d #显示 C 盘根目录中的文件
dir d:\\mp3 /b/p #逐屏显示 d:\\mp3 目录里的文件,/b只显示文件名,不显示时间和大小;/p在每个信息屏幕后暂停。
dir *.exe /s显示当前目录和子目录里所有的.exe文件(/s显示所有文件)。
其中 * 是通配符,代表所有的文件名;通配符 ? 代表一个任意字母或汉字,如 c*.* 代表以 c 开头的所有文件;?.exe 代表所有文件名是一个字母的.exe文件。如果指定的目录或文件不存在,将返回 errorlevel 为1; 每个文件夹的 dir 输出都会有2个子目录
dir . #显示当前目录中的文件和子目录
dir .. #显示当前目录的上级目录中的文件和子目录 其它参数可参考 dir /?
4.cd更改当前目录
cd mp3 #进入当前目录中的mp3 目录
cd .. #进入当前目录中的上级目录(进入根目录后不能继续) cd\\ #进入根目录 cd #显示当前目录
cd /d d:\\mp3 #可以同时更改盘符和目录(/d可更改驱动器) cd.>c:\\abc.txt(完美) 可用于新建空白txt文件。
cd \文件名带空格,路径前需要加上引号!!如
果更改到的目录不存在,则出错返回 errorlevel=1。CHDIR 命令不把空格当作分隔符,因此有可能将目录名改为一个带有空格但不带有引号的子目录名。例如: cd \\winnt\\profiles\%username\\programs\\start menu 与下列相同:
cd \
5.md创建目录
md abc #在当前目录里建立子目录 abc md d:\\a\\b\\c #如果 d:\\a 不存在,将会自动创建 文件名带空格,路径前需要加上引号。
6.rd删除目录
rd abc #删除当前目录里的 abc 子目录,要求为空目录,即abc目录下不能有文件夹和文件。
rd /s/q d:\\temp #删除 d:\\temp 文件夹及其子文件夹和文件,不需要按 Y 确认
/S 除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。
/Q 安静模式,带 /S 删除目录树时不要求确认
7.del删除文件
del d:\\test.txt #删除指定文件,不能是隐藏、系统、只读文件
del *.*删除当前目录里的所有文件,不包括隐藏、系统、只读文件,要求按 Y 确认
del /q/a/f d:\\temp\\*.*删除 d:\\temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录及子目录下的文件
del /q/a/f/s d:\\temp\\*.*删除 d:\\temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录
/P 删除每一个文件之前提示确认。 /F 强制删除只读文件。
/S 删除所有子目录中的文件。
/Q 安静模式。删除全局通配符时,不要求确认
/A 根据属性选择要删除的文件。只有/a则表示包括所有属性。