批处理命令简介

批处理命令简介:

1、echo命令:echo [{on|off}] [message]
在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定的文件中。

2、rem 命令:Rem [注释内容]
起一个注释的作用,只有在编辑批处理时才会被看到,主要用于方便修改。
:: 也具有rem的功能。

3、pause 命令
运行 Pause 命令时,将显示下面的消息:
Press any key to continue. . .(或:请按任意键继续. . .)

4、call命令
在路径【F:\tmp\】下面建个【called.bat】文件
文件内添加以下代码
@echo off
echo %1
%1是输出传递该处理的第一个参数
调用bat,vbs,exe等处理来扩展bat程序的处理能力。
@echo off
call F:\tmp\called.bat "hello world"

5、start 命令
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
start calc.exe 打开Windows的计算器

6、goto 命令:
程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。)
:1
start
goto 1
千万别使,做好重启的准备。

7、set 命令:
显示、设置或删除变量。
显示:  set //显示批处理当前已定义的所有变量及其值
set s //显示所有以s开头的变量及值
设置:  set aa=abcd //把aa定义为abcd 如果要调用这个变量,就把aa两边加上个百分号。
例如:set aa=abcd
echo %aa%
pause
删除:set aa= //删除变量aa,aa尚未定义,则此句命令无实质意义
注意:批处理中的变量不区分类型,set aa=1234,那么变量aa既可以视作数字,也可以视作字符串。
set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。
SET 命令不允许变量名含有等号。
在 SET 命令中添加了两个新命令行开关:
    SET /A expression
    SET /P variable=[promptString]

/A 命令行开关指定等号右边的字符串为被评估的数字表达式。


符号简介:

1、/P 命令行开关

允许将变量数值设成用户输入的一行输入。读取输入

行之前,显示指定的 promptString。promptString 可以是空的。
2、回显屏蔽 @:不显示@后面的命令
通过运行批处理文件对比pause和@pause命令即可明了@的效果。
3、重定向1   >;与>>:
将输出信息重定向到指定的设备或文件。系统默认输出到显示器。
echo aaaaa>a.txt//可将aaaaa写入到a.txt中,擦出原有内容,没有文件则创建。
echo aaaaa>>a.txt //末尾添加内容。
注意:因为数字的特殊性,在向文本文件中输出数字的时候,在后面加上空格,echo 9313 >a.txt。
3、重定向2   <
将输入信息来源重定向为指定的设备或文件。系统默认从显示器读取输入信息。
举例:
@echo off
echo abcdefg——这是文件a.txt中的信息>a.txt
echo 请任意输入字符,以回车结束:
set /p ifo=
cls
echo 【 从屏幕获得的输入信息 】
echo %ifo%
set /p ifo=<a.txt
echo 【 从文件a.txt获得的输入信息 】
echo %ifo%
pause>nul
读者观察命令与输出即可体会到重定向的功能和效果。
4、管道符号 |
将管道符号前面命令的输出结果重定向输出到管道符号后面的命令中去,作为后面命令的输入。使用格式为:command_1|command_2
举例:
@echo off
echo aaaa>a.txt
del /p a.txt
pause
-----------------------------------------------------------------------
@echo off
echo aaaa>a.txt
echo y|del /p a.txt
pause
对比以上两个批处理执行结果,读者即可明白管道符的用法和效果。


5、转义符 ^:
如果我们想输出符号“>;”,直接用命令 echo > 是不行的,必须修改为 echo ^>;其他符号还有:| & > <。

6、逻辑命令符 &、&&、||
&-它的作用是用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败;
&&-当&&前面的命令成功执行时,执行&&后面的命令,否则不执行;
||-当||前面的命令失败时,执行||后面的命令,否则不执行。

命令释义:
1、文件夹管理

cd 显示当前目录名或改变当前目录。
md 创建目录。
rd 删除一个目录。
dir 显示目录中的文件和子目录列表。
tree 以图形显示驱动器或路径的文件夹结构。
path 为可执行文件显示或设置一个搜索路径。
copy 复制文件和目录树。
文件管理
type 显示文本文件的内容。
copy 将一份或多份文件复制到另一个位置。
del 删除一个或数个文件。
move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有)
ren重命名文件。
replace 替换文件。
attrib 显示或更改文件属性。
find 搜索字符串。
fc 比较两个文件或两个文件集并显示它们之间的不同
网络命令:
ping 进行网络连接测试、名称解析
ftp文件传输
net 网络命令集及用户管理
telnet远程登陆
ipconfig显示、修改TCP/IP设置
msg 给用户发送消息
arp 显示、修改局域网的IP地址-物理地址映射列表
系统管理
at 安排在特定日期和时间运行命令和程序
shutdown立即或定时关机或重启
tskill 结束进程
taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)
tasklist显示进程列表(Windows XP Home Edition中没有)
sc 系统服务设置与控制
reg 注册表控制台工具
powercfg控制系统上的电源设置
对于以上列出的所有命令,在cmd中输入命令+/?即可查看该命令的帮助信息。如find /?

2、语句结构:选择结构(if语句)、循环结构(for语句)
1.字符串比较:
if语句仅能够对两个字符(串)是否相同、先后顺序进行判断等。其命令格式为:
IF [not] string1 compare-op string2 command1 [else command2]
compare-op:
== - 等于
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
选择开关/i则不区分字符串大小写,
------------------------------------------------------------------
@echo off
set str1=abcd1233
set str2=ABCD1234
if %str1%==%str2% (echo 字符串相同!) else (echo 字符串不相同!)
if /i %str1% LSS %str2% (echo str1^<str2) else (echo str1^>=str2)
echo.
set /p choice=是否显示当前时间?(y/n)
if /i not %choice% EQU n echo 当前时间是:%date% %time%
pause>nul
------------------------------------------------------------------
2.存在判断
存在判断的功能是判断文件或文件夹是否存在
if exist %0 echo 文件%0是存在的!
if not exist %0 echo 文件%0是不存在的!
注意if语句的多行书写,多行书写要求command1的左括号必须和if在同一行、else必须和command1的右括号同行、command2的左括号必须与else同行、command1和command2都可以有任意多行,即command可以是命令集。
例如:
if not exist %~df0 (
echo 文件夹%~df0不存在!
) else echo 文件夹%~df0存在!
pause>nul
3.定义判断
定义判断的功能是判断变量是否存在,即是否已被定义
IF [not] DEFINED variable command1 [else command2]
@echo off
set var=111
if defined var (echo var=%var%) else echo var尚未定义!
set var=% %
if defined var (echo var=%var%) else echo var尚未定义!
pause>nul

3、for语句(循环结构
for语句可以实现类似于C语言里面的循环结构,当然for语句的功能要更强大一点,通过不同的开关可以实现更多的功能。for语句有多个开关,不同开关将会实现不同的功能。
1.无开关
FOR %%variable IN (set) DO command
其中,%%variable是批处理程序里面的书写格式,在DOS中书写为%variable
set就是需要我们设定的循环范围,类似于C语言里面的循环变量;do后面的command就是循环所执行的命令,即循环体。
for %%i in (a,"b c",d) do echo %%i
在命令行要写成
for %i in (a,"b c",d) do echo %i
输出
a
"b,c"
d
2.开关/L
含开关/L的for语句,可以根据set里面的设置进行循环,从而实现对循环次数的直接控制。其命令格式为:
FOR /L %%variable IN (start,step,end) DO command
其中,start为开始计数的初始值,step为每次递增的值,end为结束值
例如:
@echo off
for /l %%i in (1,2,10) do md %%i
pause
上例将新建5个文件夹,文件夹名称依次为1.3.5.7.9。可以发现,%%i的结束值并非end的值10,而是不大于end的一个数。
(按住shift加上下键可以调出输入过得内容。)
3.开关/F
含开关/F的for语句具有最强大的功能,它能够对字符串进行操作,也能够对命令的返回值进行操作,还可以访问硬盘上的ASCII码文件,比如txt文档等。其命令格式为:
FOR /F ["options"] %%variable IN (set) DO command
其中,set为("string"、'command'、file-set)中的一个;options是(eol=c、skip=n、delims=xxx、tokens=x,y,m-n、usebackq)中的一个或多个的组合。各选项的意义参见for /f。一般情况下,使用较多的是skip、tokens、delims三个选项。
eg:
@echo off
echo **No Options:
for /f %%a in ("1,2,10") do echo a=%%a
echo **Options tokens ^& delims:
for /f "tokens=1-3 delims=," %%a in ("1,2,10") do echo a=%%a b=%%b c=%%c
pause
@echo off
echo 本文件夹里面的文件有:
dir>c:\file.txt
for /f "skip=5 tokens=3* delims= " %%a in (c:\file.txt) do (
if not "%%a"=="<DIR>" if not "%%b"=="字节" if not "%%b"=="可用字节" echo %%b

del c:\file.txt
pause
后面options里面的delims= 是可以删除的,因为只要添加了/F开关系统就将delims的值默认为空格。
4.开关/D或/R
含开关/D或/R的for语句是与目录或文件有关的命令,一般情况下很少使用。含开关/R的命令有时候被用于通过遍历文件夹来查找某一个文件或文件夹,故而列举此例。
for语句是批处理里面功能最强大、使用最普遍却又最难掌握的一套命令,这也是批处理菜鸟和批处理高手最明显的一个分水岭,一旦掌握了这套命令,那么你就离批处理达人不远了!

字符串

1、截取字符串
@echo off
set ifo=abcdefghijklmnopqrstuvwxyz0 12 3456789
echo 原字符串(第二行为各字符的序号):
echo %ifo%
echo 1234567890123 45678901234567890123456
echo 截取前5个字符:
echo %ifo:~0,5%
echo 截取最后5个字符:
echo %ifo:~-5%
echo 截取第一个到倒数第6个字符:
echo %ifo:~0,-5%
echo 从第4个字符开始,截取5个字符:
echo %ifo:~3,5%
echo 从倒数第14个字符开始,截取5个字符:
echo %ifo:~-14,5%
pause
字符串对时间的处理
@echo off
echo 当前时间是:%time% 即 %time:~0,2%点%time:~3,2%分%time:~6,2%秒%time:~9,2%厘秒
pause
2、替换字符串
将某一字符串中的特定字符或字符串替换为给定的字符串。举例说明其功能:
set aa=伟大的中国!我为你自豪!
echo 替换前:%aa%
echo 替换后:%aa:中国=中华人民共和国%
echo aa = %aa%
set "aa=%aa:中国=中华人民共和国%"
echo aa = %aa%
pause
对于上面的例子有一点说明,对比两个echo aa = %aa%可以发现,如果要修改变量aa的内容的话,就需要将修改结果“%aa:中国=中华人民共和国%”赋值给变量aa。上面的字符串截取也有着同样的特点。
字符串合并
@echo off
set aa=伟大的中国!
set bb=我为你自豪!
echo %aa%%bb%
echo aa=%aa%
echo bb=%bb%
set "aa=%aa%%bb%"
echo aa=%aa%
pause
3、扩充字符串
“扩充”这个词汇来自于微软自己的翻译,意思就是对表示文件路径的字符串进行特殊的处理,具体功能罗列如下:
~I - 删除任何引号("),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
%~zI - 将 %I 扩充到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个完全合格的名称。如果环境变量名
未被定义,或者没有找到文件,此组合键会扩充到
空字符串
可以组合修饰符来得到多重结果:
%~dpI - 仅将 %I 扩充到一个驱动器号和路径
%~nxI - 仅将 %I 扩充到一个文件名和扩展名
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名
%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
到找到的第一个驱动器号和路径。
%~ftzaI - 将 %I 扩充到类似输出线路的 DIR
数值计算
数值计算需要使用set命令,具体格式为“set /a expression”。其中,expression代表计算表达式
批处理中取变量的值是需要用%或者!的,而在set /a 中,直接用变量名称即可取得变量的值。另外,set支持八进制(数字前缀0)、十进制(数字无前缀)和十六进制(数字前缀0x),且支持不同进制之间的计算,如set /a a=123+0123+0x123,计算及显示结果为十进制

批处理

1、环境变量
所谓“环境变量”,实际上就是C语言里面的“变量”的意思。批处理的变量可以分为两类,由系统定义的系统变量和由用户根据需要自定义的用户变量。
【1系统变量】
批处理的一些变量是由操作系统事先定义好的,可以适用于任何批处理,我们称这些特殊的变量为“系统变量”。系统变量有很多个,包括硬件类、操作系统类、文件路径类、系统时间类等。要查看所有的系统变量,请新打开一个cmd窗口,输入set回车即可。对几个比较常用的变量解释如下:
HomeDrive:系统分区盘符一般都是C盘
Path:可执行文件默认搜索路径
ProgramFiles:系统的Program Files的路径一般都是C:\Program Files
SystemRoot:系统根目录路径,一般都是C:\WINDOWS
Temp:程序等可使用的临时目录默认是C:\WINDOWS\Temp或Tmp
UserName:当前用户名,即所登陆的账户名
【2.用户变量】
编写批处理程序时,用户根据需要自己定义的变量称之为用户变量。用户变量类似于C语言里面的变量,仅仅在定义该变量的程序中有效。
用户变量由set命令定义
【 3.变量引用 】
直接用变量名操作变量,通过"%"或"!"来获取变量的值。其中,只有在for语句里面重复对同一变量多次赋值时才需要使用"!",并且在使用"!"调用变量时,要首先“启用延迟环境变量扩充”,启动命令为:SetLocal EnableDelayedExpansion。另外需要说明的是,“启用延迟环境变量扩充”后,所有的"!"都将被视为“取变量值”的特殊符号,即使用"^!"也不能输出符号"!"。若要输出"!",则需要“停用延迟环境变量扩充”,命令为:SetLocal DisableDelayedExpansion

参数
在调用函数或其他批处理时可能需要传递参数。批处理的参数传递分为直接和间接两种传递参数的方法。
【 1.直接传递 】
使用call命令时,不使用任何参数,在子函数或子批处理里面直接对主函数(也称父批处理)里面的变量进行修改。
@echo off
setlocal enabledelayedexpansion
set var=aCdehiM,?mnrstW y
echo %var%
call :deal
setlocal disabledelayedexpansion
set var=%var:?=!%
echo %var%
pause>nul
exit
:deal
set tm=!var!
set var=
for %%i in (6,3,11,11,16,15,1,4,11,5,12,13,9,0,12,7,15,14,5,10,2,16,18,8) do (
set var=!var!!tm:~%%i,1!

goto :eof
可以发现,当我们把变量var作为参数赋予子函数:deal后,子函数对var的值进行了修改;当子函数返回后,主函数里面的var的值就已经是子函数里面var被修改后的值了。
该例子中,使用了本节课前面讲到的setlocal enabledelayedexpansion和setlocal disabledelayedexpansion,前者保证了var在for循环里面能够根据我们的意愿进行处理,后者保证了能够正确输出符号"!"。另外例子中还使用了命令set,利用set对字符串进行了处理。还有一个地方使用了语句goto :eof,该语句相当于C语言里面的return或汇编语言里面的RET,即子程序返回命令。需要说明的是,当子函数本身就在批处理文件的末尾的话,我们是可以省略这句话的,比如将此例的goto :eof删除是不会产生任何影响的。
【 2.间接传递 】
间接传递参数,即在使用call命令时,在其后面添加参数,形如call {[:label][ChildBatch]} Parameter1 Parameter2 ... ParameterN。这跟C语言里面传递参数的格式类似。不同于C语言,批处理中的子函数不需要定义形参,更不需要指定参数的个数。传递过来的参数,在子函数或子批处理里面是以%1~%9的形式表示的,即%1~%9分别表示传递过来的第1~9个参数。
@echo off
call :deal aaa bbb "c c" ddd eee
pause>nul
exit
:deal
echo %%0 = %0
echo %%1 = %1
echo %%2 = %2
echo %%3 = %3
echo %%4 = %4
echo %%5 = %5

返回值
有些命令在执行之后将会返回一定的错误值(errorlevel),可以通过errorlevel的值判断命令执行的状况。
@echo off
reg add HKCU /v try /f>nul
reg delete HKCU /v try /f
if errorlevel 0 (echo删除成功!) else (echo 删除失败!)
reg delete HKCU /v try /f
if %errorlevel%==0 (echo 删除成功!) else (echo 删除失败!)
pause>nul

用户交互

【 1.视窗 】
首先我们要DIY它的窗口。使用命令:color、mode、msg。
--1.设置窗口背景色和字体颜色by color。详细内容参见color /?。
--2.设置窗口大小by "MODE CON [COLS=c] [LINES=n]",cols即宽度,lines即高度。
--3.GUI交互窗口by msg。详细内容参见msg /?。
@echo off
set a=10
set b=0
:tex
set /a a+=3
set /a b+=1
mode con cols=%a% lines=%b%
if %a% lss 60 goto :tex
echo O(∩_∩)O 圣诞快乐 O(∩_∩)O
set a=15,a6,2e,d0,34,8b,4f,9d,5e
for %%i in (%a%) do (
ping -n 2 127.1>nul
color %%i

for %%i in (%a%,%a%) do (
ping -n 1 127.1>nul
color %%i

>>ms.txt echo */. . . * .
>>ms.txt echo .\* . [] * __
>>ms.txt echo */ . ./\~~~~~~~~~~~~'\. ^|
>>ms.txt echo \*,/,..,\,...........,\.
>>ms.txt echo ^|^| ..▎# ▎田 田 ▎ ^| ▎
>>ms.txt echo ^|^| ^&^&;▎ ▎ ▎'^|'▎ o
>>ms.txt echo ^|^| ##■■■■■■■■■■〓
msg %username% /w /time:3600 <ms.txt
del ms.txt
pause
【 2.声音 】
@echo off
echo 做好准备,响了啊!!
pause
cls
echo
echo 怎么样?呵呵,刺激吧~
pause
cls
mshta vbscript:createobject("sapi.spvoice").speak("Merry Christmas and Happy New Year!")(window.close)
pause
【 3.控制 】
在运行批处理的过程中,我们如何干预批处理呢?呵呵,直接点叉叉就可以结束它了!嗯,不错,不过,太野蛮了~
--1.暂停批处理:直接按键盘上的Pause键喽
--2.终止批处理:组合键Ctrl+C。不过,有时候它好像响应的不太积极啊…

ASCII码
ASCII码是图形化的符号,可以用来点缀我们的批处理的。

批处理简单应用:刷空间访问量,注意默认为UC浏览器,如果是其他浏览器只需改动taskkill的内容即可。

 @echo off 
set /a aa=100
:Begin
if %aa% == 0 (goto Next2)
set /a aa=%aa% - 1
echo %aa%
set /a bb=aa%%5
echo %bb%
if %bb% == 0 (goto Next1)
start http://www.cnblogs.com/liun1994/
ping -n 4 127.1>nul
start http://blog.csdn.net/seeker1994
ping -n 4 127.1>nul
goto Begin

:Next1
taskkill /f /t /im firefox.exe
goto Begin

:Next2
exit































  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
批处理命令教程PDF是一本介绍和教授批处理命令的电子书。批处理命令是一种用于自动化执行一系列计算机任务的编程语言。通过编写批处理脚本,用户可以一次性运行多个命令,而无需手动逐个输入。批处理命令可以在Windows系统中使用,用于自动化重复性任务,提高效率和准确性。 这本教程PDF提供了全面的批处理命令知识和技巧。首先,它介绍了批处理脚本编写的基本语法和规则。学习者可以了解如何写入命令、设置变量和运行条件语句。教程还提供了大量实例和示范代码,帮助读者更好地理解和掌握批处理命令的使用。 此外,教程还介绍了一些常用的批处理命令,如文件操作、目录管理、进程控制等。学习者将学会如何批量复制、移动、删除文件,如何创建、删除目录,以及如何管理后台进程等等。这些命令广泛应用于日常计算机操作和系统管理中,对于提高工作效率和简化任务流程非常有帮助。 教程PDF还提供了一些高级主题,如错误处理、循环控制和批处理脚本的调试技巧。这些主题对于扩展和优化批处理命令非常重要。学习者可以通过教程PDF深入了解这些主题,并将它们应用于实际项目中。 总之,批处理命令教程PDF是一本帮助读者全面掌握批处理命令的书籍。它提供了基础知识、实例代码和高级主题,帮助读者成为批处理命令的专家。无论是初学者还是有经验的用户,都可以通过这本教程PDF提高工作效率,简化任务流程,实现自动化操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风浪仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值