1 echo 和 @
@ #关掉单行道回显
echo off #从下一行逐渐关掉回显
@echo off #从行内逐渐关掉回显。一般批处理命令第一行全是这一
echo on #从下一行逐渐开启回显
echo #显示现阶段是 echo off 情况或是 echo on 情况
echo. #輸出一个”回车键自动换行”,空行
#(同echo, echo; echo echo[ echo] echo/ echo)
2 errorlevel
echo %errorlevel%
每一个指令运作完毕,可以用这一命令文件格式查询回到码
初始值为0,一般指令实行出差错会设 errorlevel 为1
3 dir
dir #显示当前目录中的文件和子目录
dir /a #显示当前目录中的文件和子目录,包含掩藏文件和系统软件文件
dir c: /a:d #显示 C 盘当前目录中的文件目录
dir c: /a:-d #显示 C 盘网站根目录中的文件
dir c: /b/p #/b只显示文件名,/p分页查询显示
dir *.exe /s #显示当前目录和子目录里全部的.exe文件
4 cd
cd #进到网站根目录
cd #显示当前目录
cd /d d:sdk #可以与此同时更改盘符和文件目录
5 md
md d:abc #假如 d:a 不会有,可能全自动建立初级文件目录
#假如指令后缀名被停止使用,则必须输入 mkdir abc。
6 rd
rd abc #删掉当前目录里的 abc 子目录,规定为空目录
rd /s/q d:temp #删掉 d:temp 文件夹以及子文件夹和文件,/q清静方式
7 del
del d:test.txt #删掉特定文件,不可以是掩藏、系统软件、审阅文件
del /q/a/f d:temp*.* #删掉 d:temp 文件夹里边的全部文件,包含掩藏、审阅、系统软件文件,不包括子目录
del /q/a/f/s d:temp*.* #删掉 d:temp 及子文件夹里边的全部文件,包含掩藏、审阅、系统软件文件,不包括子目录
8 ren
ren d:temp tmp #适用对文件夹的重新命名
9 cls
清屏
10 type
显示文件內容
type c:boot.ini #显示特定文件的內容,程序流程文件一般会显示错码
type *.txt #显示当前目录里全部.txt文件的內容
11 copy
复制文件
copy c:test.txt d:test.bak
拷贝 c:test.txt 文件到 d: ,并重取名为 test.bak
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
拷贝文件到自身,事实上是改动了文件日期
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 的文件內容
21 tree
显示文件目录构造
tree d: #显示D盘的文件文件目录构造
22 &
次序实行好几条指令,而无论指令能否实行取得成功
23 &&
次序实行好几条指令,当遇到实行出差错的指令后将不实行后边的指令
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 > 和 >>
輸出跳转指令
> 消除文件中原地区有的信息后再载入
>> 增加內容到文件结尾,而不容易消除原来的內容
关键将原本显示在手机屏幕上的信息輸出到特定文件中
指定文件假如不会有,则自动生成该文件
type c:test.txt >prn
显示屏上不显示文件內容,转为輸出到复印机
echo hello world>con
在手机屏幕上显示hello world,事实上全部輸出全是默认设置 >con 的
copy c:test.txt f: >nul
复制文件,而且不显示”文件复制成功”的信息提示,但假如f盘不会有,依然会显示出差错信息内容
copy c:test.txt f: >nul 2>nul
不显示”文件复制成功”的信息提示,而且f盘不会有得话,都不显示不正确信息提示Echo ^^W ^> ^W>c:test.txt
形成的文件內容为 ^W > W
^ 和 > 是操纵指令,要把他们輸出到文件,务必在前面加个 ^ 标记
27 <
从文件中得到键入信息内容,而不是从手机屏幕上
一般用以 date time label 等必须等候键入的指令
@echo off
echo 2005-05-01>temp.txt
date <temp.txt
del temp.txt
那样就可以不等候键入立即改动现阶段日期
28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
命令传送给批处理命令的主要参数
%0 批处理命令文件自身
%1 第一个主要参数
%9 第九个参数
%* 从第一个主要参数逐渐的全部主要参数
批参数(%n)的取代已被提高。您可以应用下列英语的语法:
%~1 – 删掉冒号(“),扩大 %1
%~f1 – 将 %1 扩充到一个彻底达标的路径名
%~d1 – 仅将 %1 扩大到一个控制器号
%~p1 – 仅将 %1 扩大到一个途径
%~n1 – 仅将 %1 扩大到一个文件名
%~x1 – 仅将 %1 扩充到一个文件后缀名
%~s1 – 扩大的途径指带有短名
%~a1 – 将 %1 扩大到文件特性
%~t1 – 将 %1 扩大到文件的日期/時间
%~z1 – 将 %1 扩大到文件的尺寸
%~$PATH : 1 – 搜索列在 PATH 系统变量的文件目录,并将 %1
扩大到寻找的第一个彻底达标的名字。假如自然环境
变量定义未被界定,或是没寻找文件,此键盘快捷键会
扩大到空字符串
可以组成修订符来获得多种結果:
%~dp1 – 只将 %1 拓展到控制器号和途径
%~nx1 – 只将 %1 拓展到文件名和后缀名
%~dp$PATH:1 – 在列在 PATH 系统变量中的文件目录里搜索 %1,
并扩大到寻找的第一个文件的控制器号和途径。
%~ftza1 – 将 %1 拓展到相近 DIR 的輸出行。
可以参考 call/? 或 for/? 看得出每一个主要参数的寓意
echo load “%%1” “%%2”>c:test.txt
生成的文件内容为 load “%1” “%2”
批处理命令文件里,用这一文件格式把命令行参数輸出到文件
29 if
分辨指令
if “%1″==”/a” echo 第一个主要参数是/a
if /i “%1” equ “/a” echo 第一个参数是/a
/i 表明不区别大小写字母,equ 和 == 是一样的,其他操作符参照 if/?
if exist c:test.bat echo 存有c:test.bat文件
if not exist c:windows (
echo 不会有c:windows文件夹
)
if exist c:test.bat ( echo 存有c:test.bat ) else ( echo 不会有c:test.bat )
30 setlocal 和 endlocal
设定”指令后缀名”和”减缓系统变量扩大”
SETLOCAL ENABLEEXTENSIONS #开启”指令后缀名”
SETLOCAL DISABLEEXTENSIONS #停止使用”指令后缀名”
SETLOCAL ENABLEDELAYEDEXPANSION #开启”减缓系统变量扩大”
SETLOCAL DISABLEDELAYEDEXPANSION #停止使用”减缓系统变量扩大”
ENDLOCAL #修复到应用SETLOCAL句子之前的情况
“指令后缀名”默认设置为开启
“减缓系统变量扩大”默认设置为停止使用
批处理命令完毕系统软件会自行修复初始值
可以注册表修改以禁止使用”指令后缀名”,详见 cmd /? 。因此使用”指令后缀名”的程
序,提议在开头和结尾再加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 句子,以确
保程序流程能在其他系统软件上恰当运作
“减缓系统变量扩大”主要运用于 if 和 for 的合乎句子,在 set 的表明里有实际上用方法
31 set
设定自变量
引入自变量可在变量定义前后左右加 % ,即 %变量定义%
set #表明现阶段全部可以用的自变量,包含系统变量和修改的自变量
echo %SystemDrive% #表明C盘盘符。系统变量可以直接引用
set p #表明全部以p开始的自变量,如果一个都没有就设errorlevel=1
set p=aa1bb1aa2bb2 #设定自变量p,并取值为 = 后边的字符串数组,即aa1bb1aa2bb2
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=3
set /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%
)
結果将表明
aaa
aaa
由于在载入 if 句子时已经将全部 %p% 更换为aaa
这儿的”更换”,在 /? 协助里是指”扩大”、”系统变量扩大”
可以开启”减缓系统变量扩大”,用 ! 来引入自变量,即 !变量定义!
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set p=aaa
if %p%==aaa (
echo %p%
set p=bbb
echo !p!
)
ENDLOCAL
結果将表明
aaa
bbb
也有好多个动态性自变量,运作 set 看不见
�% #意味着当前目录的字符串数组
�TE% #现阶段日期
%TIME% #现在时间
%RANDOM% #任意整数金额,处于0~32767
%ERRORLEVEL% #现阶段 ERRORLEVEL 值
%CMDEXTVERSION% #当前指令CPU后缀名版本信息
%CMDCMDLINE% #启用指令CPU的初始命令
可以用echo指令查询每一个变量值,如 echo %time%
留意 %time% 精准到ms,在批处理命令必须延迟解决时可以使用
32 start
批处理命令中启用外界程序流程的指令,不然等外界程序流程进行后才执行剩余的命令
33 call
批处理命令中启用此外一个批处理命令的指令,不然剩余的批处理命令命令将不容易强制执行
有时候有的应用软件用start启用出差错的,还可以call启用
34 choice (外部命令)
挑选指令
让客户键入一个字符,进而挑选运作不一样的指令,回到码errorlevel为1234……
win98里是choice.com
win2000pro里沒有,可以从win98里拷回来
win2003里是choice.exe
choice /N /C y /T 5 /D y>nul
延迟5秒
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 的恰当关系
假如该关系已经被毁坏,可以运作 command.com ,再键入这条指令
36 pushd 和 popd
转换当前目录
@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
37 for
循环系统指令
这一比较复杂,请对比 for/? 看来
for %%i in (c: d: e: f:) do echo %%i
先后启用小括号里的每一个字符串数组,实行 do 后边的指令
留意%%i,在批处理命令中 for 句子启用主要参数用2个%
默认设置的字符串数组分隔符是”空白键”,”Tab键”,”空格键”
for %%i in (*.txt) do find “abc” %%i
对当前目录里全部的txt文件实行 find 指令
for /r . %%i in (*.txt) do find “abc” %%i
在当前目录和根目录里全部的.txt文件中检索包括 abc 字符串数组的行
for /r . %%i in (.) do echo %%~pni
表明当前目录名和全部根目录名,包含途径,不包括盘符
for /r d:mp3 %%i in (*.mp3) do echo %%i>>d:mp3.txt
把 d:mp3 以及根目录里的mp3文档的文件名都存到 d:mp3.txt 里去
for /l %%i in (2,1,8) do echo %%i
生成2345678的一串数字,2是数字序列的开始,8是结尾,1表明每一次加1
for /f %%i in (‘set’) do echo %%i
对 set 指令的导出結果循环系统启用,每排一个
for /f “eol=P” %%i in (‘set’) do echo %%i
取 set 指令的导出結果,忽视以 P 开始的那几行
for /f %%i in (d:mp3.txt) do echo %%i
表明 d:mp3.txt 里的每一个文件名,每排一个,不兼容带空格符的名字
for /f “delims=” %%i in (d:mp3.txt) do echo %%i
表明 d:mp3.txt 里的每一个文件名,每排一个,适用带空格符的名字
for /f “skip=5 tokens=4” %%a in (‘dir’) do echo %%a
对 dir 指令的結果,绕过前边5行,剩下的每排取第4列
每列中间的分隔符为默认设置的”空格符”
可以注意到 dir 指令輸出的前5行是沒有文件名的
for /f “tokens=1,2,3 delims=- ” %%a in (‘date /t’) do (
echo %%a
echo %%b
echo %%c
)
对 date /t 的导出結果,每排取1、2、3列
第一列相匹配特定的 %%a ,后边的 %%b 和 %%c 是衍生出的,相匹配其他列
分隔符特定为 – 和”空格符”,留意 delims=- 后边有一个”空格符”
在其中 tokens=1,2,3 若用 tokens=1-3 更换,实际效果是一样的
for /f “tokens=2* delims=- ” %%a in (‘date /t’) do echo %%b
取第2列给 %%a ,之后的列都给 %%b
38 subst (外部命令)
投射硬盘。
subst z: serverd #那样键入z:就可以浏览serverd了
subst z: /d #撤销该投射
subst #表明现阶段全部的映时
39 xcopy (外部命令)
文档复制
xcopy d:mp3 e:mp3 /s/e/i/y
拷贝 d:mp3 文件夹名称、全部子文件夹名称和文档到 e: ,遮盖已经有文档
加 /i 表明假如 e: 沒有 mp3 文件夹名称就全自动新创建一个,不然会出现了解
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。