批处理常用网络命令和符号篇

时间:2021-05-22

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 ment" 关闭注释(最大 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 offset str=abcecho 变量 str 的值是: %str%pause

在屏幕上将显示这样的结果:
变量 str 的值是: abc
按任意键继续...


②另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10
个数字,如%0、%1、%2 。。。
%0 表示批处理文件本身,包括完整的路径和扩展名
%1至%9 表示第一个参数至第九个参数

例2

@echo offif defined str goto nextset str=set /p str=请把文件拉到本窗口后回车:call "%~0" %str%pause:nextclsecho 本批处理文件完整路径为:"%~0"echo 拖到本窗口的文件完整路径为:"%~1"goto :eof

③出现在 set /a 语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法
略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%。

例如:在命令行窗口中,运行 set /a num=4%2 ,则结果将显示0,因为4除以2的余数为0;
如果保存为批处理文件,则此语句将略有改变:

例3

@echo offset /a num=4%%2echo 4除以2的余数为 %num%pause


④转义符号:如果要显示%本身时,需要在前面用%来转义。

例4

@echo offecho 一个百分号:%%echo 两个百分号:%%%%echo 三个百分号:%%%%%%pause


六、界定符 ""

①在表示带有空格或特殊符号的路径时常要用""来将路径括起来。

例1
cd /d cd "d:\program files\^%*abc"
因为路径中带有空格和特殊符号,所以要用""将路径括起来。


②表示其中的内容是一个完整的字符串。

例2
@echo off
set "var=abc 123"
echo %var%
pause

这里表示变量var的值为字符串“abc 123”。

由于符号还有很多,在此就只说了上面几个常用的,有空的话可以观看这篇文章《批处理常用符号详解》,

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章