2022年批处理常用命令 .pdf
批处理常用命令及用法大全说明:本文来自网络,由youxi01 整理阅读本文需要一定的dos 基础概念,象:盘符、文件、目录(文件夹 )、子目录、根目录、当前目录每个命令的完整说明请加/? 参数参考微软的帮助文档可以看到,在 /? 帮助里, 命令扩展名一词会经常出现命令扩展名 是指相对于win98 的 dos 版本而言,每个命令新增的功能命令测试环境win2000proSP4win98的命令功能太少,就不作研究了注: 如果对某一命令还不是很熟悉,可以在命令行窗口下输入:命令名 /?的方式来获得帮助。例如:对dir 命令的应用不熟悉,可以在命令行窗口下输入:dir /? 1 echo 和 回显控制命令 # 关闭单行回显echo off #从下一行开始关闭回显echo off #从本行开始关闭回显。一般批处理第一行都是这个echo on #从下一行开始打开回显echo # 显示当前是echo off 状态还是echo on 状态echo. #输出一个 回车换行 ,一般就是指空白行echo hello world #输出 hello world 关闭回显 是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果批处理开始和结束时,系统都会自动打开回显2 errorlevel程序返回码echo %errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码用于判断刚才的命令是否执行成功默认值为0,一般命令执行出错会设errorlevel 为 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 3 dir 显示目录中的文件和子目录列表dir # 显示当前目录中的文件和子目录dir /a # 显示当前目录中的文件和子目录,包括隐藏文件和系统文件dir c: /a:d #显示C 盘当前目录中的目录dir c: /a:-d #显示 C 盘根目录中的文件dir d:mp3 /b/p # 逐屏显示d:mp3 目录里的文件,只显示文件名,不显示时间和大小dir *.exe /s 显示当前目录和子目录里所有的.exe 文件其中* 是通配符,代表所有的文件名,还一个通配符? 代表一个任意字母或汉字如c*.* 代表以c 开头的所有文件?.exe 代表所有文件名是一个字母的.exe 文件如果指定的目录或文件不存在,将返回errorlevel 为 1;每个文件夹的dir 输出都会有2 个子目录 . 和 . 代表当前目录 . 代表当前目录的上级目录dir . #显示当前目录中的文件和子目录dir . #显示当前目录的上级目录中的文件和子目录其它参数可参考dir /? 4 cd 更改当前目录cd mp3 # 进入当前目录中的mp3 目录cd . #进入当前目录中的上级目录cd # 进入根目录cd #显示当前目录cd /d d:mp3 #可以同时更改盘符和目录cd Documents and SettingsAll users文件名带空格,路径前需要加上引号!如果更改到的目录不存在,则出错返回 errorlevel=1 5 md 创建目录md abc # 在当前目录里建立子目录abc md d:abc #如果d:a 不存在,将会自动创建名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 6 rd 删除目录rd abc #删除当前目录里的abc 子目录,要求为空目录rd /s/q d:temp #删除d:temp 文件夹及其子文件夹和文件,不需要按Y 确认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 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录8 ren 文件重命名ren 1.txt 2.bak # 把 1.txt 更名为2.bak ren *.txt *.ini # 把当前目录里所有.txt 文件改成 .ini 文件ren d:temp tmp # 支持对文件夹的重命名9 cls 清屏10 type 显示文件内容type c:boot.ini #显示指定文件的内容,程序文件一般会显示乱码type *.txt #显示当前目录里所有.txt 文件的内容11 copy 拷贝文件复制 c:test.txt 文件到d: copy c:test.txt d:test.bak复制 c:test.txt 文件到d: ,并重命名为test.bak copy c:*.* 复制c: 所有文件到当前目录,不包括隐藏文件和系统文件不指定目标路径,则默认目标路径为当前目录copy con test.txt从屏幕上等待输入,按Ctrl+Z 结束输入,输入内容存为test.txt 文件 con代表屏幕, prn 代表打印机,nul 代表空设备copy 1.txt + 2.txt 3.txt合并 1.txt 和 2.txt 的内容,保存为3.txt 文件如果不指定3.txt ,则保存到1.txt copy test.txt + 复制文件到自己,实际上是修改了文件日期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 12 title 设置 cmd 窗口的标题title 新标题 # 可以看到 cmd 窗口的标题栏变了13 ver 显示系统版本14 label 和 vol 设置卷标vol # 显示卷标label #显示卷标,同时提示输入新卷标label c:system #设置 C 盘的卷标为system 15 pause 暂停命令运行该命令时,将显示下面的消息:请按任意键继续 . . . 一般用于看清楚屏幕上显示的内容16 rem 和 :注释命令注释行不执行操作17 date 和 time 日期和时间date #显示当前日期,并提示输入新日期,按回车 略过输入date/t # 只显示当前日期,不提示输入新日期time #显示当前时间,并提示输入新时间,按回车 略过输入time/t # 只显示当前时间,不提示输入新时间18 goto 和 :跳转命令:label # 行首为 :表示该行是标签行,标签行不执行操作goto label #跳转到指定的标签那一行19 find ( 外部命令 )查找命令find abc c:test.txt在 c:test.txt 文件里查找含abc 字符串的行如果找不到,将设errorlevel 返回码为 1 find /i abc c:test.txt查找含abc 的行,忽略大小写find /c abc c:test.txt显示含abc 的行的行数20 more ( 外部命令 )逐屏显示more c:test.txt #逐屏显示c:test.txt 的文件内容名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 21 tree 显示目录结构tree d: #显示 D 盘的文件目录结构22 & 顺序执行多条命令,而不管命令是否执行成功c: & cd & dir /w相当于把下面3 行命令写到1 行去了 c:cddir /w 23 & 顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令f: & cd & dir c:test.txt注意如果f盘不存在,那么后面2 条命令将不会执行find ok c:test.txt & echo 成功如果找到了ok 字样,就显示 成功 ,找不到就不显示24 | 顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令find ok c:test.txt | echo 不成功如果找不到ok 字样,就显示 不成功 ,找到了就不显示25 | 管道命令前一个命令的执行结果输出到后一个命令dir *.* /s/a | find /c .exe管道命令表示先执行dir 命令,对其输出的结果执行后面的find 命令该命令行结果:输出当前文件夹及所有子文件夹里的.exe 文件的个数type c:test.txt|more这个和more c:test.txt 的效果是一样的26 和 输出重定向命令 清除文件中原有的内容后再写入 追加内容到文件末尾,而不会清除原有的内容主要将本来显示在屏幕上的内容输出到指定文件中指定文件如果不存在,则自动生成该文件echo hello worldc:test.txt生成 c:test.txt 文件,内容为hello world 这个格式在批处理文件里用得很多,可以生成.reg .bat .vbs 等临时文件type c:test.txt prn屏幕上不显示文件内容,转向输出到打印机echo hello worldcon在屏幕上显示hello world ,实际上所有输出都是默认con 的copy c:test.txt f: nul拷贝文件,并且不显示文件复制成功 的提示信息,但如果f 盘不存在,还是会显示出错信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - copy c:test.txt f: nul 2nul不显示 文件复制成功的提示信息,并且f 盘不存在的话,也不显示错误提示信息echo W Wc:test.txt生成的文件内容为W W 和 是控制命令,要把它们输出到文件,必须在前面加个 符号27 temp.txtdate c:test.txt生成的文件内容为load %1 %2 批处理文件里,用这个格式把命令行参数输出到文件31 set 设置变量引用变量可在变量名前后加% ,即%变量名 % set # 显示目前所有可用的变量,包括系统变量和自定义的变量echo %SystemDrive% # 显示系统盘盘符。系统变量可以直接引用set p #显示所有以p 开头的变量,要是一个也没有就设errorlevel=1 set p=aa1bb1aa2bb2 # 设置变量 p,并赋值为= 后面的字符串,即aa1bb1aa2bb2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - echo %p% #显示变量p 代表的字符串,即aa1bb1aa2bb2 echo %p:6% #显示变量p 中第 6 个字符以后的所有字符,即aa2bb2 echo %p:6,3% #显示第 6 个字符以后的3 个字符,即aa2 echo %p:0,3% #显示前 3 个字符,即aa1 echo %p:-2% #显示最后面的2 个字符,即b2 echo %p:0,-2% #显示除了最后2 个字符以外的其它字符,即aa1bb1aa2b echo %p:aa=c% #用 c 替换变量p 中所有的aa,即显示c1bb1c2bb2 echo %p:aa=% # 将变量 p 中的所有aa 字符串置换为空,即显示1bb12bb2 echo %p:*bb=c% #第一个 bb 及其之前的所有字符被替换为c,即显示c1aa2bb2 set p=%p:*bb=c% # 设置变量p,赋值为%p:*bb=c% ,即 c1aa2bb2 set /a p=39 #设置 p 为数值型变量,值为39 set /a p=39/10 #支持运算符,有小数时用去尾法,39/10=3.9 ,去尾得3,p=3set /a p=p/10 #用 /a 参数时 ,在 = 后面的变量可以不加%直接引用set /a p=1&0 #与运算,要加引号。其它支持的运算符参见set/? set p= #取消 p 变量set /p p= 请输入屏幕上显示请输入 ,并会将输入的字符串赋值给变量p 注意这条可以用来取代 choice 命令注意变量在if 和 for 的复合语句里是一次性全部替换的,如echo off set p=aaa if %p%=aaa ( echo %p% set p=bbb echo %p% ) 结果将显示aaaaaa 因为在读取if 语句时已经将所有%p% 替换为 aaa 这里的 替换 ,在 /? 帮助里就是指 扩充 、环境变量扩充 可以启用 延缓环境变量扩充,用 ! 来引用变量,即!变量名 ! echo off SETLOCAL ENABLEDELAYEDEXPANSION set p=aaaif %p%=aaa ( echo %p% 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - set p=bbb echo !p! ) ENDLOCAL 结果将显示aaabbb 还有几个动态变量,运行set 看不到%CD% #代表当前目录的字符串%DATE% #当前日期%TIME% #当前时间%RANDOM% #随机整数,介于032767 %ERRORLEVEL% #当前 ERRORLEVEL 值%CMDEXTVERSION% #当前命令处理器扩展名版本号%CMDCMDLINE% #调用命令处理器的原始命令行可以用echo 命令查看每个变量值,如echo %time% 注意 %time% 精确到毫秒,在批处理需要延时处理时可以用到32 start 批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令调用图形界面打开D 盘echo offcd /d %dp0regedit /s 劲舞团 .regstart patcher.exe 不加 start 命令的话, 劲舞团 运行时,后面会有个黑乎乎的cmd 窗口33 call 批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行有时有的应用程序用start 调用出错的,也可以call 调用34 choice ( 外部命令 )选择命令让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel 为 1234 win98里是 win2000pro里没有 ,可以从 win98 里拷过来win2003 里是 choice.exechoice /N /C y /T 5 /D ynul延时 5 秒下面是个choice 语句的例子echo off rem 以下在 win2000pro运行通过,从win98 里拷的 文件choice /c:abc aaa,bbb,ccc 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - if errorlevel 3 goto ccc if %errorlevel%=2 goto bbb if errorlevel=1 goto aaa rem 必须先判断数值高的返回码rem 可以看到errorlevel 值的判断有3 种写法,有时某种写法不好用,可以用另外的写法rem 直接运行chioce 相当于运行choice /c:yn:aaa echo aaa goto end :bbb echo bbb goto end :ccc echo ccc goto end :end 35 assoc 和 ftype 文件关联assoc 设置 文件扩展名 关联,关联到文件类型 ftype 设置 文件类型 关联,关联到 执行程序和参数当你双击一个.txt 文件时, windows 并不是根据 .txt 直接判断用notepad.exe 打开而是先判断.txt 属于txtfile 文件类型 再调用txtfile 关联的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1可以在 文件夹选项 文件类型里修改这2 种关联assoc # 显示所有 文件扩展名 关联assoc .txt #显示 .txt 代表的 文件类型 ,结果显示 .txt=txtfile assoc .doc #显示 .doc 代表的 文件类型 ,结果显示 .doc=Word.Document.8 assoc .exe #显示 .exe 代表的 文件类型 ,结果显示 .exe=exefile ftype #显示所有 文件类型 关联ftype exefile #显示 exefile 类型关联的命令行,结果显示exefile=%1 %* assoc .txt=Word.Document.8设置 .txt 为 word 类型的文档 ,可以看到 .txt 文件的图标都变了assoc .txt=txtfile恢复 .txt 的正确关联ftype exefile=%1 %*恢复 exefile 的正确关联如果该关联已经被破坏,可以运行 ,再输入这条命令36 pushd 和 popd 切换当前目录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - echo off c: & cd & md mp3 #在 C: 建立mp3 文件夹md d:mp4 #在 D: 建立 mp4 文件夹cd /d d:mp4 #更改当前目录为d:mp4 pushd c:mp3 #保存当前目录,并切换当前目录为c:mp3 popd # 恢复当前目录为刚才保存的d:mp4 一般用处不大 ,在当前目录名不确定时,会有点帮助32 subst ( 外部命令 )映射磁盘。subst z: serverd # 这样输入z:就可以访问 serverd 了subst z: /d #取消该映射subst #显示目前所有的映38 xcopy ( 外部命令 )文件拷贝xcopy d:mp3 e:mp3 /s/e/i/y复制d:mp3 文件夹、所有子文件夹和文件到e: ,覆盖已有文件加/i 表示如果e: 没有mp3 文件夹就自动新建一个,否则会有询问39 一些不常用的内部命令& 将一个句柄的输出写入到另一个句柄的输入中 ,如 c: 40 format ( 外部命令 )格式化硬盘format c: /q/u/autotest/q表示快速格式化,/autotest 表示自动格式化,不需要按Y 确认 /u表示每字节用F6 覆盖硬盘数据,使其不可用软件恢复format c: /c格式化 C 盘,并检测坏道41 fdisk ( 外部命令 )硬盘分区win2000 不带该命令 win98 里的 fdisk 不支持 80G 以上大硬盘, winme 里的支持fdisk/mbr 重建硬盘分区表,一般用于清除引导区病毒、还原精灵注意使用该命令不能从硬盘启动,必须软驱或光驱启动后直接运行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - 42 ping ( 外部命令 ) ping -l 65500 -t 192.168.1.200不停的向192.168.1.200计算机发送大小为65500byte 的数据包ping -n 10 127.0.0.1nulping自己 10 次,可用于批处理延时10 秒43 SC ( 外部命令 )服务控制命令sc create aaa displayname= bbb start= auto binpath= C:WINDOWSSystem32alg.exe创建服务,服务名称aaa,显示名称bbb ,启动类型 :自动可执行文件的路径C:WINDOWSSystem32alg.exe sc description aaa ccc更改 aaa 的描述为ccc sc config aaa start= disabled binpath= C:WINDOWSSystem32svchost.exe -k netsvcs更改 aaa 的启动类型 :已禁用更改aaa 的可执行文件的路径C:WINDOWSSystem32svchost.exe -k netsvcs sc config aaa start= demand displayname= ddd更改 aaa 的启动类型 :手动更改aaa 的显示名称 ddd sc start aaa启动 aaa 服务sc stop aaa停止 aaa 服务sc delete aaa删除 aaa 服务名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -