2.1学习 ping ipconfig arp start shutdown taskkill 命令
学习要点:
1.测试IP连接:ping
2.查看IP配置:ipconfig
3.解析地址:arp
4.开启命令:start
5.关闭或重启计算机:shutdown
6.关闭指定进程taskkill
一.测试IP连接:ping
用来检查网络是否通畅或者网络连接速度的命令。在此,我们只了解一些基本的参数就可以了。
-n count 发送count指定的Echo数据包数。
定义向目标IP发送数据包的次数,默认为4次。通过此命令可以收集到一些信息。如数据包返回的平均时间为多少,
最快时间为多少,最慢时间为多少等等。
例1
C:\Documents and Settings\mzybar>ping -n 3 www.baidu.com
Pinging www.ogeek.net [121.14.88.14] with 32 bytes of data:
Reply from 121.14.88.14: bytes=32 time=3ms TTL=57
Reply from 121.14.88.14: bytes=32 time=3ms TTL=57
Reply from 121.14.88.14: bytes=32 time=2ms TTL=57
Ping statistics for 121.14.88.14:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 3ms, Average = 2ms
我们分析一下吧:
Ping statistics for 121.14.88.14:
Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
从这里可以知道在给www.baidu.com发送3个数据包的过程当中,返回了3个,没有数据包丢失。
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 3ms, Average = 2ms
这3个数据包当中返回速度最快为2ms,最慢为3ms,平均速度为2ms。
例2
ping -n 11 127.0.0.1 >nul
ping本机11次,可用于批处理延时10秒。命令中的>nul为屏蔽输出。
简短式可以写成:
ping -n 11 127.1 >nul
-w timeout 指定超时间隔,单位为毫秒。
例3
ping 1 -n 1 -w 10000 2>nul 1>nul
批处中可以用于延时10秒。
二.查看IP配置:ipconfig
由于批处理中经常对计算机的TCP/IP 配置信息的截取,这里我们只讲一下/all参数就行了。
/all参数
作用:显示所有适配器的完整 TCP/IP 配置信息。当使用IPConfig时不带任何参数选项,那么它为每个已经配置了的
接口显示IP地址、子网掩码和缺省网关值。
例1
C:\Documents and Settings\mzybar>ipconfig
Windows IP Configuration
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.0.73
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.254
这里显示的信息为:
1.计算机的本地连接名称为:本地连接
2.本机IP为:192.168.0.73
3.子网掩码为:255.255.255.0
4.默认网关为:192.168.0.254
例2
C:\Documents and Settings\mzybar>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : A-073 //计算机名称
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Ethernet adapter 本地连接: //计算机的本地连接名称
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Realtek RTL8168/8111 PCI-E Gigabit E //网卡型号
thernet NIC
Physical Address. . . . . . . . . : 00-E0-4C-59-9B-57 //网卡的MAC地址
Dhcp Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 192.168.0.73 //IP地址
Subnet Mask . . . . . . . . . . . : 255.255.255.0 //子网掩码
Default Gateway . . . . . . . . . : 192.168.0.254 //默认网关地址
DNS Servers . . . . . . . . . . . : 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 -a IP
如果我们有多个网卡,那么使用arp –a 加上对应网卡的IP地址,就可以只显示与该网卡相关的ARP缓存项目。
缺省IP情况下,将显示所有当前 ARP 缓存表。
例1
C:\Documents and Settings\mzybar>arp -a
Interface: 192.168.0.20 --- 0x2
Internet Address Physical Address 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
分析一下上面的数据:
Internet Address:代表 IP 地址。
Physical Address:代表网卡的物理地址,即网卡的MAC地址。
Type:代表ARP表的类型,“dynamic”为动态的;“static”为静态的。
arp -s IP 物理地址
我们可以向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错
误时,人工配置的物理地址将自动更新该项目。通过此命令可以实现ARP绑定。
例2
arp -s 192.168.1.1 00-1a-92-90-19-fe
对192.168.1.1添加静态ARP实现ARP绑定。
arp -d IP
使用本命令能够人工删除一个静态项目。可以输入arp -d命令,缺省IP情况下将删除当前计算机的arp表。
在对付ARP欺骗中,我们一般先删除当前计算机的arp表,然后再实现ARP绑定。
例3
@echo off
arp –d
arp –s 192.168.0.1 00-1a-92-90-19-fe
arp –s 192.168.0.2 00-1a-92-90-19-eb
arp –s 192.168.0.3 00-1a-92-49-1c-a9
arp –s 192.168.0.4 00-1a-92-90-19-32
arp –s 192.168.0.5 00-1a-92-38-07-09
pause
四.开启命令:start
基本格式:start “title” filename
其中title可以省略,filename如带有空格或是特殊符号的,用""括起来。
例1
start http://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] [-t xx] [-c "comment"] [-d up:xx:yy]
没有参数 显示此消息(与 ? 相同)
-i 显示 GUI 界面,必须是第一个选项
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m \\computername 远程计算机关机/重启动/放弃
-t xx 设置关闭的超时为 xx 秒
-c "comment" 关闭注释(最大 127 个字符)
-f 强制运行的应用程序关闭而没有警告
-d [u][p]:xx:yy 关闭原因代码
u 是用户代码
p 是一个计划的关闭代码
xx 是一个主要原因代码(小于 256 的正整数)
yy 是一个次要原因代码(小于 65536 的正整数)
例1
shutdown -l
该命令只能注销本机用户,对远程计算机不适用。
例2
at 12:00 shutdown -s
通过-s参数,在12:00执行关闭计算机。
例3
shutdown -r -t 60
60秒后重启计算机。这里是设置重启倒计时为60秒。如果没有设置时间则默认为30秒。
例4
shutdown -f -s -t 300
通过-f参数强制计算机300秒后关闭。
例5
shutdown -a
当我们在遇到冲击波或震荡波病毒时,或是执行了上面的关机命令时,我们可以运用shutdown -a 终止当前的关机进
程,这样就可以避免关机而造成的损失了。
六.关闭指定进程taskkill
Taskkill命令可以根据进程 ID 或图像名来结束一个或多个任务或进程。
/im ImageName
指定将终止的进程的图像名称。
例1
taskkill /im qq.exe
/f process
指定将强制终止的进程。对于远程进程可忽略此参数,所有远程进程都将被强制终止。
例2
taskkill /f /im spoolsv.exe
/pid process id 指定要终止的进程的PID
例3
taskkill /pid 1230 /pid 1241 /pid 1253
这里是终止PID 分别为 1230 1241 1253的进程。
关于DOS的网络命令还是蛮多的,有一些是非常强大的例如regsvr32,netsh,sc,wmic等,这些就不多说了,希望
都多动手去搜索一下相关的资料吧,^&^
2.2学习常用的特殊符号
学习要点:
1.>、>>重定向符
2.| 命令管道符
3.&、&&、|| 组合命令
4.^ 转义字符
5.% 变量引导符
6."" 界定符
一、重定向符 >、>>
> 重定向符, 意思是传递并且覆盖,它所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默
认的系统控制台,即命令提示符)。
例1
echo hello120 >1.txt
新建立文件 1.txt,内容为”hello120” (注意:行尾有一空格,文件后有一空行)
例2
(echo hello120)>1.txt 新建立文件 1.txt,内容为”hello120” (注意:行尾无空格,但文件后有一空行)
>1.txt echo hello120 新建立文件 1.txt,内容为”hello120” (注意:行尾无空格,但文件后有一空行)
例3
>1.txt <nul set /p=hello120 或>1.txt set /p=hello120<nul
新建立文件 1.txt,内容为”hello120” (注意:行尾无空格,且文件后也无空行)
注意:
如果上面的例子中1.txt原来有内容的话,在使用了> 重定向符命令后,将会被新的内容覆盖掉,这个一定要注意!
>> 重定向符 将命令的输出结果追加到其后面的设备中去。这个符号的作用和>有点类似,但他们是有区别的 >>是
传递并在文件的末尾追加,而>是覆盖。用法同>一样的。
例1
echo hello120 >>1.txt
如果1.txt不存在,则新建立文件 1.txt,内容为”hello120 ”;如果1.txt存在,则把内容为”hello120 ”追加
到其文末尾。
例2
echo hello> 1.txt
echo world>>1.txt
这时候 1.txt内容如下:
hello
world
二、命令管道符 |
表示把在它之前的命令或语句的执行结果作为在它之后的命令或语句的处理对象,简而言之,就是把它之前的输出作
为它之后的输入。
例1
tasklist | find /i "qq.exe" && taskkill /f /im qq.exe
将tasklist(进程列表)用传递符"|" 传递给find 命令,执行查找QQ的进程。
例2
echo Y|rd /s c:\abc
通过管道命令|将echo y 的结果传给rd /s c:\abc 命令,从而达到自动输入y 的目的。
★注意,管道命令 | 的输入方法,shift键 \
三、组合命令 &、&&、||
&、&&、|| 为组合命令,顾名思义,就是可以把多个命令组合起来当一个命令来执行。
&符号允许同时执行多条命令,当第一个命令执行失败了,也不影响后边的命令执行。这里 & 两边的命令是顺序执行
的,从前往后执行。
格式:第一条命令 & 第二条命令 [& 第三条命令...]
例1
dir z:\ & dir y:\ & dir c:\
以上命令会连续显示z,y,c 盘的内容,不理会该盘是否存在。
&&符号允许同时执行多条命令,当碰到执行出错的命令后将不再执行后面的命令,如果一直没有出错则一直执行完
所有命令。
格式:第一条命令 && 第二条命令 [&& 第三条命令...]
例2
dir z:\ && dir y:\ && dir c:\
这个命令和上面的类似,但区别是,前一个命令执行失败时,后边的命令就不会再执行了。
||符号允许同时执行多条命令,当一条命令执行失败后才执行第二条命令,当碰到执行正确的命令后将不执行后面
的命令,如果没有出现正确的命令则一直执行完所有命令。
格式:第一条命令 || 第二条命令 [|| 第三条命令...]
例3
tasklist | find /i "qq.exe" && taskkill /f /im qq.exe || echo 你开了QQ?我不信
通过&&和||两个符号可以认为把上例分成了三个命令:
第一个命令::tasklist | find /i "qq.exe"
第二个命令:taskkill /f /im qq.exe
第三个命令:echo 你开了QQ?我不信
这里我们分析一下,
如果找不到QQ进程,即第一个命令执行失败,则 && 不会执行第二个命令:taskkill命令,由于taskkill 命令没有
执行,视作第二个命令执行失败,则 || 将会执行第三个命令:echo 命令。
如果找到QQ进程,即第一个命令执行成功,则 && 将会执行第二个命令:taskkill命令,由于第二个命令执行成功,
|| 将不会执行第三个命令:echo 命令。
★管道命令 | | 的输入方法,输入两次shift键 \
★组合命令和重定向命令、管道命令一起使用必须注意优先级。管道命令的优先级高于重定向命令,重定向命令的优
先级高于组合命令。
思考:
把C 盘和 D 盘的文件和文件夹列出到a.txt 文件中。
你可能马上的写出了下面的命令:
dir c:\ && dir d:\ > a.txt
这样执行后a.txt 里只有D盘的信息!为什么?因为组合命令的优先级没有重定向命令的优先级高!所以命令在执
行时将被分成两部分:dir c:\和dir d:\ > a.txt
这里要使用组合命令&&达到题目的要求,我们可以这样写:
dir c:\ > a.txt && dir d:\ >> a.txt
这样,依据优先级高低,DOS 将把这句话分成以下两部分:dir c:\ > a.txt 和dir d:\ >> a.txt
当然,我们也可以这样写:
dir c:\ > a.txt & dir d:\ >> a.txt
四、转义字符 ^
一般而言,^ 以转义字符的身份出现。
因为在cmd环境中,有些字符具备特殊功能,如 >、>>表示重定向,| 表示管道,&、&&、|| 表示语句连接……它
们都有特定的功能,如果需要把它们作为字符输出的话,echo >、echo | ……之类的写法就会出错——cmd解释器会
把它们作为具有特殊功能的字符对待,而不会作为普通字符处理,这个时候,就需要对这些特殊字符做转义处理:在
每个特殊字符前加上转义字符^。
因此,要输出这些特殊字符,就需要用 echo ^>、echo ^|、echo ^|^|、echo ^^……之类的格式来处理;
另外,此转义字符还可以用作续行符号。
例1
@echo off
echo 这是^
一个^
句子
Pause
为什么转义字符放在行尾可以起到续行符的作用呢?原因很简单,因为每行末尾还有一个看不见的符号,即回车
符,转义字符位于行尾时就让回车符失效了,从而起到了续行的作用。
五、变量引导符 %
①当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%、%str%
例1
@echo off
set str=abc
echo 变量 str 的值是: %str%
pause
在屏幕上将显示这样的结果:
变量 str 的值是: abc
按任意键继续...
②另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10
个数字,如%0、%1、%2 。。。
%0 表示批处理文件本身,包括完整的路径和扩展名
%1至%9 表示第一个参数至第九个参数
例2
@echo off
if defined str goto next
set str=
set /p str=请把文件拉到本窗口后回车:
call "%~0" %str%
pause
:next
cls
echo 本批处理文件完整路径为:"%~0"
echo 拖到本窗口的文件完整路径为:"%~1"
goto :eof
③出现在 set /a 语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法
略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%。
例如:在命令行窗口中,运行 set /a num=4%2 ,则结果将显示0,因为4除以2的余数为0;
如果保存为批处理文件,则此语句将略有改变:
例3
@echo off
set /a num=4%%2
echo 4除以2的余数为 %num%
pause
④转义符号:如果要显示%本身时,需要在前面用%来转义。
例4
@echo off
echo 一个百分号:%%
echo 两个百分号:%%%%
echo 三个百分号:%%%%%%
pause
六、界定符 ""
①在表示带有空格或特殊符号的路径时常要用""来将路径括起来。
例1
cd /d cd "d:\program files\^%*abc"
因为路径中带有空格和特殊符号,所以要用""将路径括起来。
②表示其中的内容是一个完整的字符串。
例2
@echo off
set "var=abc 123"
echo %var%
pause
这里表示变量var的值为字符串“abc 123”。
由于符号还有很多,在此就只说了上面几个常用的,有空的话可以观看这篇文章《批处理常用符号详解》, |
请发表评论