Windows批处理命令32讲
—版权作者:电子科技大学宋宇超
第一讲:掌握批处理文件创建与编辑方法
1.copy con命令创建简单批处理文件:
为了更好地学习请尝试执行以下步骤加深对命令的理解:
(1)copy con file_exist.bat(这个命令是创建了一个file_exist.bat文件接下来可以在下面的命令行将你想执行的批处理命令写入文件)
(2)@echo on(批处理文件的开始)
(3)if exist a.txt echo There is a.txt file in current directory!
(4)ctrl+z结束批处理文件的编辑
(5)通过dir命令查看当前命令是否成功创建相应的批处理文件
(6)用echo .>a.txt 创建一个a.txt文件检验我们创建的file_exist.bat批处理文件执行效果
(7)file_exist.bat(运行批处理文件查看效果)
2.使用edit命令创建和编辑批处理文件
这个不多说和,感觉和记事本差不多,在命令行输入edit命令或者在windows开始菜单输入edit并回车运行便可以打开这个古老的编辑器;
这个编辑器在win7及更高版本已被取消
。
3.用记事本创建批处理文件
计算机史上最伟大的
编译器
,哈哈哈,这个创建流程也不多说了,相信大家都懂。
第二讲:全面了解批处理命令的语法和功能-第一部分
[ ]中的内容代表必选项,{ }中的内容代表可选项
1.echo命令的语法和应用:
格式:echo [{on|off}] [message]
(1)创建a.txt文件,文件内容-‘Hello World’
(2)创建testbat.bat文件,写入如下批处理命令
echo on
type a.txt
echo 现在关闭命令显示!!!!
echo off
type a.txt
(3)在命令行红中输入testbat.bat命令测试命令显示效果
2.@(小老鼠命令)命令–重要的显示控制命令
禁止当前命令在屏幕回显
@echo on
@type a.txt
@echo 现在关闭命令显示!!!!
@echo off
type a.txt
对比echo中命令的代码展示效果理解@命令的操作。
3.pause命令语法和应用
示例代码如下,请运行查看结果,方便理解
@echo off
echo pause命令测试....
pause
type a.txt
cmd清屏命令:cls
4.call命令语法和应用(比较重要的批处理命令)
语法: call [ [Drive:] [Path] FileName [BatchParameters]] [:label [arguments]]
(1)创建called.bat文件并写入如下代码:
@echo off
echo 已经进入called.bat
type a.txt
(2)创建testcall.bat文件并写入如下代码:
@echo off
echo 正在调用called.bat....
call called.bat
echo called.bat调用完毕!
echo 现在调用"XX"标号后的语句
call :XX
:XX
echo "XX"标号后的语句....
(3)在命令行中执行testcall.bat查看运行效果。
5.rem–简单的注释命令
直接上代码,大家自行理解:
@echo off
rem 这是一个简单的批处理命令
type a.txt
dir *.txt
6.set命令语法和应用
SET [[/a [expression]] [/p [variable=]] string]
赋值或者删除环境变量
(1)创建testset.bat命令并填入以下代码:
@echo off
set xxx="e:/windowsbat"
echo 显示所有以字母x开头的变量
dir /w %xxx%
rem 以列表的形式显示当前目录下的文件
rem 删除名为xxx的变量
set xxx=
(2)在命令行执行testset.bat查看运行效果。
第三讲:全面了解批处理命令的语法和功能-第二部分
1.goto命令语法和应用(控制转向命令)
goto label
(1)建立testgoto.bat文件,写入如下代码
@echo off
echo 跳过中间的命令,只执行last之后的命令
goto last
dir
type a.txt
:last
dir a.txt
(2)在命令行运行testgoto.bat命令查看运行效果。
2.start命令语法和应用
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/WAIT] [/B] [command/program] [parameters]
(1)创建teststart.bat文件,并写入如下代码:
@echo off
echo 将在新的窗口显示a.txt内容
start "a.txt内容" /wait type a.txt
echo 已从新窗口中返回
在命令行中运行teststar.bat命令查看效果并理解
3.if命令语法和应用
if判断适用于以下四种情况
1、判断驱动器、文件或文件夹是否存在,用 if exist 语句;
2、判断某两个字符串是否相等,用 if “字符串1”==”字符串2” 语句;
3、判断某两个数值是否相等,用 if 数值1 equ 数值2 语句;
4、判断某个变量是否已经被赋值,用 if defined str 语句;
if语句的完整格式是这样的:if 条件表达式 (语句1) else (语句2),它的含义是:如果条件表达式成立,那么,就执行语句1,否则,将执行语句2。``对于以上四种情形,可以分别使用如下代码:
1、if exist d:\test.txt (echo D盘下有test.txt存在) else (echo D盘下不存在test.txt)
2、if “abc”==”xyz” (echo 字符串abc等于字符串xyz) else (echo 字符串abc不等于字符串xyz)
3、if 1 equ 2 (echo 1等于2) else (echo 1不等于2)
4、if defined str (echo 变量str已经被赋值,其值为%str%) else (echo 变量str的值为空)
判断字符串是否相等的时候,if会区分大小写,比如,单纯的if语句会认为字符串abc和字符串Abc不相同,若不想区分大小写,则需要添加 /i 开关,使用 if /i "字符串1"=="字符串2" 的格式;另外,等于符号是连续的"=="而非单独的"="。判断两个数值之间的大小关系,除了等于用equ之外,还有其他的关系符号,所有适用于if语句的关系符号见下表:
中文含义 | 关系符 | 英文解释 |
---|---|---|
等于 | equ | equal |
大于 | gtr | greater than |
大于或等于 | geq | greater than or equal |
小于 | lss | less than |
小于或不等于 | leq | less than or equal |
不等于 | neq | no equal |
if语句还有一个精简格式:if 条件表达式 语句,它的含义是:如果条件表达式成立,将执行语句,否则,什么也不做。多层 if 嵌套的语法举例:
if exist a.txt (
if exist 1.txt (
echo 存在 a.txt 和 1.txt
) else (
echo 存在 a.txt 但是不存在 1.txt
)
) else if exist b.txt (
echo 不存在 a.txt 但是存在 b.txt
) else (
echo 不存在 a.txt 和 b.txt
)
(1)建立testif.bat文件,并写入如下代码:
@echo off
if exist a.txt (echo 存在a.txt命令,其内容为: type a.txt) else (echo 不存在a.txt命令)
(2)在命令行运行testif.bat命令,查看效果。
4.for命令语法和应用
FOR %variable IN (set) DO command [command-parameters]
注意:for命令后面的变量严格区分大小写
(1)建立testfor.bat文件,并写入如下代码:
@echo off
set /a sum=0
for %%x in (*.txt) do (
echo %%x文件内容如下:
type %%x
echo.
rem "echo."代表换一行显示
set /a sum=sum+1
)
echo 总共检测到%sum%个txt文件
(2)在命令行运行testfor.bat命令,查看效果。