批处理文件的创建与编辑方法
使用copy con命令创建批处理文件
将计算机中输入的内容放入指定的存储文件中
^Z结束退出
dir查看目录,成功创建批处理文件
【copy con只能进行简单的创建,不能对已经创建的进行更改。】
运行批处理文件,由于g盘中不存在a.txt文件所以输出批处理文件中内容,在g盘中新建a.txt文件。
再次运行批处理文件
使用edit命令创建批处理文件
古老的工具,win7下已不使用。
使用记事本创建批处理文件
notepad
使用edit命令编辑批处理文件
全面了解批处理命令的语法与功能
echo命令语法及应用
echo [{on|off}] [message]
echo on 打开回显
echo off 关闭回显
@命令语法及应用
禁止当前执行的命令回显在屏幕上
echo on对当前行以后的直到echo的所有命令生效,@只对当前行有效。
pause命令语法及应用
暂停批处理
call命令语法及应用
在批处理中调用另一个批处理;可以调用指定标号处后的所有命令。
在执行到call :xx语句时 跳转至执行 :xx 后面语句“在XX标号后的命令…”,之后跳转回来继续执行 echo 在XX标号后的命令…
使用call命令执行指令标号后命令时在标识符前加冒号“:”。
call [[Drive:][Path] FileName [BatchParameters]] [[:label] [arguments]]
rem命令语法及应用
注释命令,说明信息。
set命令语法及应用
创建、设置、查看、删除环境变量
set 变量xxx值为"c:"
set x 显示以x开头的变量
dir /w以列表形式显示目录
%xxx% 参数变量调用xxx的值
set xxx= 对xxx变量赋空值
set /a 执行数学计算
set /p 提示用户输入
set [[/a [expression]] [/p [variable=]] string]
goto命令语法及应用
流程控制转向命令
last 这是goto的转向的标识符,不能包含其他符号但是可以使用空格,即跳转至: last
start命令语法及应用
用于重新启用一个单独的命令行窗口,在新的窗口中执行指定的程序或命令。
start [“title”] 命令行标题窗口的内容
start [/dPath] 指定要启动的目录
start [/i:] 将cmd命令行窗口启动环境传送到新的命令提示符窗口,即将现有的命令行窗口的运行环境传送到新的窗口上
start [/min] 启动新的窗口后最小化命令
start [/max] 将启动新的命令行创窗口最大化
start [{/separate|shared}] 将在单独的/共享的内存空间来启动
start [/wait]启动应用程序并等待其结束
if命令语法及其应用
if [not] errorlevel number command [else expression]
if [not] string1==string2 command [else expression]
if [not] exist filename command [else expression]
if [/i] string1 compareop string2 command [else expression]
/i 强制字符串比较,忽略大小写
compareop:
EQU: 等于
NEQ: 不等于
LSS: 小于
LEQ: 小于或等于
GTR: 大于
GEQ: 大于或等于
eg: if /i dog1 EQU dog2 (echo 两只狗相同) else (echo 两只狗不同)
if defined variable command [else expression]
for 命令语法及应用
%%x 表示变量x,在批处理中使用两个%
echo. 表示空白行
for {%variable|%%variable} in (set) do command [CommandLineOptions]
for 后的变量要区分大小写
setlocal 命令语法及应用
启动批处理文件中环境变量的本地化。本地化将持续到出现匹配的 endlocal 命令或者到达批处理文件结尾为止。
在批处理程序运行的时候来设置自身的环境变量,不会影响到系统的环境变量。
setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion}
endlocal
参数:
enableextension
启用命令扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
disableextensions
禁用命令扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
enabledelayedexpansion
启用延迟的环境变量扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
disabledelayedexpansion
禁用延迟的环境变量扩展,直到出现匹配的 endlocal 命令,无论 setlocal 命令之前的设置如何。
shift命令语句及应用
更改批处理文件的处理参数的一种方式,比如指定起始处理参数的位置。
shift [/n] 设置批处理从第n个参数开始 n取0~8
符号%0~%9专用于批处理从命令行获得的参数,依次代表命令行的相应参数。从%0开始赋值,%0赋值为test.bat,%1赋值为a.txt,以此类推。当%1的值为空时跳转end结束,不是空时输出内容,遇到shift,把%1的值赋给%0,%2的值赋给%1,以此类推;跳转round再次执行。
“*”、“?” 通配符
用于表示文件和目录
“*” 表示任意多个字符,也包括0个字符
“?” 表示单个字符
dir:显示目录命令
DIR 命令的格式:
dir [D:][PATH][NAME][[/A][:attrib]][/o:[sorted][/s][/b][/l][/c[h]
(1)dir /a:attrib 缺省包含所有文件(系统文件.隐含文件)
attrib[:][h/-h]只显示隐含文件或非隐含文件.
[r/-r]只显示只读文件或非只读文件
[s/-s]只显示系统文件或非系统文件
[a/-a]只显示要归档文件或非归档文件
(2)/o[:]sorted:缺省完全按字母顺序,子目录显示在文件之前
/o[n/-n]:按字母顺序或按文件名顺序/反向显示
[e/-e]:按扩展名字母顺序/反向显示
[d/-d]:按时间顺序/反向显示
[s/-s]:按大小从大到小或/反向显示
[g/-g]:按子目录先于文件或文件先于子目录
(3)/s 参数:对当前目录及其子目录中所有文件进行列表
列名:dir /s/a/o:n c:>PRN
将c盘上的所有子目录和文件按隶属关系并根据子目录和文件字母顺序打印输出
(4)/B 参数:将只显示文件名与扩展名
(5)/L 参数:将全部用小写字母对文件或子目录进行列表
训练:
dir /a 列当前目录所有文件(含隐含及系统文件)
dir /ah 列隐含文件(包含子目录(隐含的) dir /a-h
dir /as 列系统文件 dir /a-s
dir /ad 列子目录 dir /a-d
dir /o 按字母顺序
dir /B 只显示文件名与扩展名
p* 以开头后面是任意字母的文件夹
“<”、“>”、“>>”重定向符的应用,“|”管道符
控制数据的输入或输出方式
“<” 右侧是数据源,左侧是目的
“>” 左边是数据源,右边是目的,把左边的数据替换到右边
“>>”把左边的数据添加到右边
“>” 将命令输出写入到文件或设备(例如打印机)中,而不是写在命令提示符窗口或句柄中。
“<” 从文件中而不是从键盘或句柄中读入命令输入。
“>>” 将命令输出添加到文件末尾而不删除文件中的信息。
“>&” 将一个句柄的输出写入到另一个句柄的输入中。
“<&” 从一个句柄读取输入并将其写入到另一个句柄输出中。
句柄 | 句柄的数字代号 | 描述 |
STDIN | 0 | 键盘输入 |
STDOUT | 1 | 输出到命令提示符窗口 |
STDERR | 2 | 错误输出到命令提示符窗口 |
UNDEFINED | 3~9 | 这些句柄由应用程序单独定义,并且是各个工具特定的 |
设备0和设备1常常省略。
echo abc >a.txt 实际上是echo abc 1>a.txt的简写
set /p data=<nul实际上是set /p data=0<nul 的简写
set /p data=<a.txt实际上是set /p data=0<a.txt的简写
" | " 从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。