批处理常用网络命令和符号篇
2.1学习ping ipconfig arp start shutdown taskkill命令
学习要点:
1.测试IP连接:ping
2.查看IP配置:ipconfig
3.解析地址:arp
4.开启命令:start
5.关闭或重启计算机:shutdown
6.关闭指定进程taskkill
一.测试IP连接:ping
用来检查网络是否通畅或者网络连接速度的命令。在此,我们只了解一些基本的参数就可以了。
-ncount发送count指定的Echo数据包数。
定义向目标IP发送数据包的次数,默认为4次。通过此命令可以收集到一些信息。如数据包返回的平均时间为多少,
最快时间为多少,最慢时间为多少等等。
例1
C:\DocumentsandSettings\mzybar>ping-n3www.baidu.com
Pingingwww.nhooo.com[121.14.88.14]with32bytesofdata:
Replyfrom121.14.88.14:bytes=32time=3msTTL=57
Replyfrom121.14.88.14:bytes=32time=3msTTL=57
Replyfrom121.14.88.14:bytes=32time=2msTTL=57
Pingstatisticsfor121.14.88.14:
Packets:Sent=3,Received=3,Lost=0(0%loss),
Approximateroundtriptimesinmilli-seconds:
Minimum=2ms,Maximum=3ms,Average=2ms
我们分析一下吧:
Pingstatisticsfor121.14.88.14:
Packets:Sent=3,Received=3,Lost=0(0%loss),
从这里可以知道在给www.baidu.com发送3个数据包的过程当中,返回了3个,没有数据包丢失。
Approximateroundtriptimesinmilli-seconds:
Minimum=2ms,Maximum=3ms,Average=2ms
这3个数据包当中返回速度最快为2ms,最慢为3ms,平均速度为2ms。
例2
ping-n11127.0.0.1>nul
ping本机11次,可用于批处理延时10秒。命令中的>nul为屏蔽输出。
简短式可以写成:
ping-n11127.1>nul
-wtimeout指定超时间隔,单位为毫秒。
例3
ping1-n1-w100002>nul1>nul
批处中可以用于延时10秒。
二.查看IP配置:ipconfig
由于批处理中经常对计算机的TCP/IP配置信息的截取,这里我们只讲一下/all参数就行了。
/all参数
作用:显示所有适配器的完整TCP/IP配置信息。当使用IPConfig时不带任何参数选项,那么它为每个已经配置了的
接口显示IP地址、子网掩码和缺省网关值。
例1
C:\DocumentsandSettings\mzybar>ipconfig
WindowsIPConfiguration
Ethernetadapter本地连接:
Connection-specificDNSSuffix .:
IPAddress............:192.168.0.73
SubnetMask...........:255.255.255.0
DefaultGateway.........:192.168.0.254
这里显示的信息为:
1.计算机的本地连接名称为:本地连接
2.本机IP为:192.168.0.73
3.子网掩码为:255.255.255.0
4.默认网关为:192.168.0.254
例2
C:\DocumentsandSettings\mzybar>ipconfig/all
WindowsIPConfiguration
HostName............:A-073 //计算机名称
PrimaryDnsSuffix .......:
NodeType............:Unknown
IPRoutingEnabled........:No
WINSProxyEnabled........:No
Ethernetadapter本地连接: //计算机的本地连接名称
Connection-specificDNSSuffix .:
Description...........:RealtekRTL8168/8111PCI-EGigabitE //网卡型号
thernetNIC
PhysicalAddress.........:00-E0-4C-59-9B-57 //网卡的MAC地址
DhcpEnabled...........:No
IPAddress............:192.168.0.73 //IP地址
SubnetMask...........:255.255.255.0 //子网掩码
DefaultGateway.........:192.168.0.254 //默认网关地址
DNSServers...........:61.144.56.100 //主DNS地址
202.96.128.166 //副DNS地址
当ipconfig命令带有/all参数时将显示所有适配器的完整TCP/IP配置信息,如果你的计算机有多个网卡时,此命
令都会将它们的信息一一列出来。
三.解析地址:arp
显示和修改“地址解析协议(ARP)”缓存中的项目。ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过
解析的以太网或令牌环物理地址。计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。
-a参数或-g参数,用于查看高速缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上
用来显示ARP高速缓存中所有项目的选项,而Windows用的是arp-a(-a可被视为all,即全部的意思),但它也可以
接受比较传统的-g选项。
arp-aIP
如果我们有多个网卡,那么使用arp–a加上对应网卡的IP地址,就可以只显示与该网卡相关的ARP缓存项目。
缺省IP情况下,将显示所有当前ARP缓存表。
例1
C:\DocumentsandSettings\mzybar>arp-a
Interface:192.168.0.20---0x2
InternetAddress PhysicalAddress Type
192.168.0.1 00-1a-92-90-19-fe static
192.168.0.2 00-1a-92-90-19-eb static
192.168.0.3 00-1a-92-49-1c-a9 static
192.168.0.4 00-1a-92-90-19-32 static
192.168.0.5 00-1a-92-38-07-09 static
192.168.0.252 00-23-54-a9-f5-4a dynamic
192.168.0.253 00-1d-60-1d-aa-d1 dynamic
192.168.0.254 00-0a-eb-0d-96-ff dynamic
分析一下上面的数据:
InternetAddress:代表IP地址。
PhysicalAddress:代表网卡的物理地址,即网卡的MAC地址。
Type:代表ARP表的类型,“dynamic”为动态的;“static”为静态的。
arp-sIP物理地址
我们可以向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错
误时,人工配置的物理地址将自动更新该项目。通过此命令可以实现ARP绑定。
例2
arp-s192.168.1.100-1a-92-90-19-fe
对192.168.1.1添加静态ARP实现ARP绑定。
arp-dIP
使用本命令能够人工删除一个静态项目。可以输入arp-d命令,缺省IP情况下将删除当前计算机的arp表。
在对付ARP欺骗中,我们一般先删除当前计算机的arp表,然后再实现ARP绑定。
例3
@echooff arp–d arp–s192.168.0.100-1a-92-90-19-fe arp–s192.168.0.200-1a-92-90-19-eb arp–s192.168.0.300-1a-92-49-1c-a9 arp–s192.168.0.400-1a-92-90-19-32 arp–s192.168.0.500-1a-92-38-07-09 pause
四.开启命令:start
基本格式:start“title”filename
其中title可以省略,filename如带有空格或是特殊符号的,用""括起来。
例1
starthttp://www.baidu.com
这里是打开百度,title省略了。
例2
start"""%windir%\system32\NOTEPAD.EXE""%userprofile%\桌面\abc.txt"
用NOTEPAD(记事本)打开桌面上的abc.txt。
例3
start"""%userprofile%\桌面\abc.doc"
这里start后面要加""才能启动文件abc.doc,否则不能启动。
如果start后没有""则表示把title省略了,此时文件名若有""的话start就会把它看作是标题,从而变成了省略
文件名,就默认开启cmd了。所以在start后加上""就能防止这种意外的情况。
参数/min和/max 使开启的窗口最小化和最大化。
例4
start/min"""%windir%\system32\NOTEPAD.EXE""%userprofile%\桌面\abc.txt"
用记事本最小化打开桌面的abc.txt。
五.关闭或重启计算机:shutdown
用法:shutdown[-i|-l|-s|-r|-a][-f][-m\\computername][-txx][-c"comment"][-dup:xx:yy]
没有参数 显示此消息(与?相同)
-i 显示GUI界面,必须是第一个选项
-l 注销(不能与选项-m一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m\\computername 远程计算机关机/重启动/放弃
-txx 设置关闭的超时为xx秒
-c"comment" 关闭注释(最大127个字符)
-f 强制运行的应用程序关闭而没有警告
-d[u][p]:xx:yy 关闭原因代码
u是用户代码
p是一个计划的关闭代码
xx是一个主要原因代码(小于256的正整数)
yy是一个次要原因代码(小于65536的正整数)
例1
shutdown-l
该命令只能注销本机用户,对远程计算机不适用。
例2
at12:00shutdown-s
通过-s参数,在12:00执行关闭计算机。
例3
shutdown-r-t60
60秒后重启计算机。这里是设置重启倒计时为60秒。如果没有设置时间则默认为30秒。
例4
shutdown-f-s-t300
通过-f参数强制计算机300秒后关闭。
例5
shutdown-a
当我们在遇到冲击波或震荡波病毒时,或是执行了上面的关机命令时,我们可以运用shutdown-a终止当前的关机进
程,这样就可以避免关机而造成的损失了。
六.关闭指定进程taskkill
Taskkill命令可以根据进程ID或图像名来结束一个或多个任务或进程。
/imImageName
指定将终止的进程的图像名称。
例1
taskkill/imqq.exe
/fprocess
指定将强制终止的进程。对于远程进程可忽略此参数,所有远程进程都将被强制终止。
例2
taskkill/f/imspoolsv.exe
/pidprocessid 指定要终止的进程的PID
例3
taskkill/pid1230/pid1241/pid1253
这里是终止PID分别为123012411253的进程。
关于DOS的网络命令还是蛮多的,有一些是非常强大的例如regsvr32,netsh,sc,wmic等,这些就不多说了,希望
都多动手去搜索一下相关的资料吧,^&^
2.2学习常用的特殊符号
学习要点:
1.>、>>重定向符
2.|命令管道符
3.&、&&、||组合命令
4.^转义字符
5.%变量引导符
6.""界定符
一、重定向符>、>>
>重定向符,意思是传递并且覆盖,它所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默
认的系统控制台,即命令提示符)。
例1
echohello120>1.txt
新建立文件1.txt,内容为”hello120”(注意:行尾有一空格,文件后有一空行)
例2
(echohello120)>1.txt 新建立文件1.txt,内容为”hello120”(注意:行尾无空格,但文件后有一空行)
>1.txtechohello120 新建立文件1.txt,内容为”hello120”(注意:行尾无空格,但文件后有一空行)
例3
>1.txt<nulset/p=hello120 或>1.txtset/p=hello120<nul
新建立文件1.txt,内容为”hello120”(注意:行尾无空格,且文件后也无空行)
注意:
如果上面的例子中1.txt原来有内容的话,在使用了>重定向符命令后,将会被新的内容覆盖掉,这个一定要注意!
>>重定向符将命令的输出结果追加到其后面的设备中去。这个符号的作用和>有点类似,但他们是有区别的>>是
传递并在文件的末尾追加,而>是覆盖。用法同>一样的。
例1
echohello120>>1.txt
如果1.txt不存在,则新建立文件1.txt,内容为”hello120”;如果1.txt存在,则把内容为”hello120”追加
到其文末尾。
例2
echohello>1.txt
echoworld>>1.txt
这时候1.txt内容如下:
hello
world
二、命令管道符|
表示把在它之前的命令或语句的执行结果作为在它之后的命令或语句的处理对象,简而言之,就是把它之前的输出作
为它之后的输入。
例1
tasklist|find/i"qq.exe"&&taskkill/f/imqq.exe
将tasklist(进程列表)用传递符"|"传递给find命令,执行查找QQ的进程。
例2
echoY|rd/sc:\abc
通过管道命令|将echoy的结果传给rd/sc:\abc命令,从而达到自动输入y的目的。
★注意,管道命令|的输入方法,shift键\
三、组合命令&、&&、||
&、&&、||为组合命令,顾名思义,就是可以把多个命令组合起来当一个命令来执行。
&符号允许同时执行多条命令,当第一个命令执行失败了,也不影响后边的命令执行。这里&两边的命令是顺序执行
的,从前往后执行。
格式:第一条命令&第二条命令[&第三条命令...]
例1
dirz:\&diry:\&dirc:\
以上命令会连续显示z,y,c盘的内容,不理会该盘是否存在。
&&符号允许同时执行多条命令,当碰到执行出错的命令后将不再执行后面的命令,如果一直没有出错则一直执行完
所有命令。
格式:第一条命令&&第二条命令[&&第三条命令...]
例2
dirz:\&&diry:\&&dirc:\
这个命令和上面的类似,但区别是,前一个命令执行失败时,后边的命令就不会再执行了。
||符号允许同时执行多条命令,当一条命令执行失败后才执行第二条命令,当碰到执行正确的命令后将不执行后面
的命令,如果没有出现正确的命令则一直执行完所有命令。
格式:第一条命令||第二条命令[||第三条命令...]
例3
tasklist|find/i"qq.exe"&&taskkill/f/imqq.exe||echo你开了QQ?我不信
通过&&和||两个符号可以认为把上例分成了三个命令:
第一个命令::tasklist|find/i"qq.exe"
第二个命令:taskkill/f/imqq.exe
第三个命令:echo你开了QQ?我不信
这里我们分析一下,
如果找不到QQ进程,即第一个命令执行失败,则&&不会执行第二个命令:taskkill命令,由于taskkill命令没有
执行,视作第二个命令执行失败,则||将会执行第三个命令:echo命令。
如果找到QQ进程,即第一个命令执行成功,则&&将会执行第二个命令:taskkill命令,由于第二个命令执行成功,
||将不会执行第三个命令:echo命令。
★管道命令||的输入方法,输入两次shift键\
★组合命令和重定向命令、管道命令一起使用必须注意优先级。管道命令的优先级高于重定向命令,重定向命令的优
先级高于组合命令。
思考:
把C盘和D盘的文件和文件夹列出到a.txt文件中。
你可能马上的写出了下面的命令:
dirc:\&&dird:\>a.txt
这样执行后a.txt里只有D盘的信息!为什么?因为组合命令的优先级没有重定向命令的优先级高!所以命令在执
行时将被分成两部分:dirc:\和dird:\>a.txt
这里要使用组合命令&&达到题目的要求,我们可以这样写:
dirc:\>a.txt&&dird:\>>a.txt
这样,依据优先级高低,DOS将把这句话分成以下两部分:dirc:\>a.txt和dird:\>>a.txt
当然,我们也可以这样写:
dirc:\>a.txt&dird:\>>a.txt
四、转义字符^
一般而言,^以转义字符的身份出现。
因为在cmd环境中,有些字符具备特殊功能,如>、>>表示重定向,|表示管道,&、&&、||表示语句连接……它
们都有特定的功能,如果需要把它们作为字符输出的话,echo>、echo|……之类的写法就会出错——cmd解释器会
把它们作为具有特殊功能的字符对待,而不会作为普通字符处理,这个时候,就需要对这些特殊字符做转义处理:在
每个特殊字符前加上转义字符^。
因此,要输出这些特殊字符,就需要用echo^>、echo^|、echo^|^|、echo^^……之类的格式来处理;
另外,此转义字符还可以用作续行符号。
例1
@echooff
echo这是^
一个^
句子
Pause
为什么转义字符放在行尾可以起到续行符的作用呢?原因很简单,因为每行末尾还有一个看不见的符号,即回车
符,转义字符位于行尾时就让回车符失效了,从而起到了续行的作用。
五、变量引导符%
①当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%、%str%
例1
@echooff setstr=abc echo变量str的值是:%str% pause
在屏幕上将显示这样的结果:
变量str的值是:abc
按任意键继续...
②另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10
个数字,如%0、%1、%2。。。
%0 表示批处理文件本身,包括完整的路径和扩展名
%1至%9 表示第一个参数至第九个参数
例2
@echooff ifdefinedstrgotonext setstr= set/pstr=请把文件拉到本窗口后回车: call"%~0"%str% pause :next cls echo本批处理文件完整路径为:"%~0" echo拖到本窗口的文件完整路径为:"%~1" goto:eof
③出现在set/a语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法
略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%。
例如:在命令行窗口中,运行set/anum=4%2,则结果将显示0,因为4除以2的余数为0;
如果保存为批处理文件,则此语句将略有改变:
例3
@echooff set/anum=4%%2 echo4除以2的余数为%num% pause
④转义符号:如果要显示%本身时,需要在前面用%来转义。
例4
@echooff echo一个百分号:%% echo两个百分号:%%%% echo三个百分号:%%%%%% pause
六、界定符""
①在表示带有空格或特殊符号的路径时常要用""来将路径括起来。
例1
cd/dcd"d:\programfiles\^%*abc"
因为路径中带有空格和特殊符号,所以要用""将路径括起来。
②表示其中的内容是一个完整的字符串。
例2
@echooff
set"var=abc123"
echo%var%
pause
这里表示变量var的值为字符串“abc123”。
由于符号还有很多,在此就只说了上面几个常用的,有空的话可以观看这篇文章《批处理常用符号详解》,