首页 理论教育 批处理命令:实用技巧

批处理命令:实用技巧

时间:2023-11-17 理论教育 版权反馈
【摘要】:批处理是将需要执行的一系列命令提前写入一个可执行的文本文件,扩展名为bat或者cmd。批处理文件执行时,里面的命令按照顺序执行,即前一条命令执行结束再开始下一条命令。第4条指令退出批处理任务。

批处理命令:实用技巧

批处理是将需要执行的一系列命令提前写入一个可执行的文本文件,扩展名为bat或者cmd。批处理文件执行时,里面的命令按照顺序执行,即前一条命令执行结束再开始下一条命令。当用户需要执行大量或重复指令时,批处理的优点就显现出来了,用户可以按照自己的意图将指令写入批处理文件,然后启动执行,之后的过程中用户不需要守在计算机前等待上一条指令结束再输入下一条指令。

编写批处理的语法比较简单,但是也非常灵活,与网络命令配合一起使用能很大程度上提高工作效率,完成一些烦琐的操作。

1.使用批处理扫描本网段存活主机

打开记事本,将下列4条指令写入文本文件并保存,文件名随意输入,扩展名由.txt改为.bat。这个批处理文件执行后可以扫描与本主机同一网段的主机是否是存活的,并且可以扫描到存活主机的MAC地址

@echo off

for/L %%I in (1,1,254) do ping 10.22.4.%%I-n 1-w 100

arp-a > D:\mac.txt

exit

第1条指令并没有实际执行具体操作,它的作用是关闭后续所有命令(包括本身这条命令)在执行时的回显,完全可以省略这条指令。

第2条指令是批处理指令集中的for循环操作,它的命令格式为:

for/L %%变量 in (初始值,每次增值,结束时的比较值) do 命令”。

“%%”定义变量,变量“I”初始值为1,每次循环加1,一直到255终止。执行的操作是“ping”网段10.22.4.0中的主机的IP地址,这个循环将会从10.22.4.1开始依次“ping”到10.22.4.254。为了节约时间,“-n 1”参数设置每次“ping”发送数据包只测试1次。“-w 100”参数设置每次回复的超时时间为100 ms。

第3条指令将ARP缓存中的内容重定向输出到D盘根目录的文件mac.txt中,符号“>”表示输出重定向,本应该在屏幕上输出的内容不再输出在屏幕上,而是输出到文件中。这里需要注意的是第二条指令中出现的扫描网段需要与本机的IP地址在同一网段,否则ARP缓存中不会记录下目的扫描主机对应的MAC地址。

第4条指令退出批处理任务。

双击即可执行此批处理文件,待执行完毕后查看D盘根目录的mac.txt文件,里面有存活主机的MAC地址。

2.使用批处理实现FTP文件管理

将批处理与ftp命令结合使用也可以高效率地完成一些具体的需求。例如,某管理员每天都要从服务器A上下载日志文件,然后再上传到服务器B上。将这些操作写成批处理文件可以做到每天双击批处理文件即可完成,不用每天都敲很多重复的指令。

新建3个文本文件,其中一个更改扩展名为bat,里面的内容如下:

@echo off

ftp-s:.\download.txt 10.22.4.171

set tday=%date:~0,4%%date:~5,2%%date:~8,2%

copy upload.txt tmp.txt

echo mkdir %tday%>>./tmp.txt

echo cd %tday%>>./tmp.txt(www.xing528.com)

echo mput *.log>>./tmp.txt

echo bye>>./tmp.txt

ftp-s:.\tmp.txt 10.22.4.172

另外两个文本文件分别为download.txt和upload.txt。download文件的内容如下:

userA

passwdA

prompt off

mget *.log

bye

upload文件的内容如下:

userB

passwdB

prompt off

批处理文件的第2行是FTP的带参数登录方式,登录10.22.4.171之后,将执行“-s”参数后指定的文件“download.txt”中的指令。download.txt文件的前两行分别是登录账号和密码,第3行“prompt off”是关闭交互模式,否则在下载和上传文件时会有提示,这将中断批处理进程。download.txt文件的第4行使用“mget”指令下载当前路径下所有的扩展名为log的文件,最后1行指令退出FTP会话。

Bat文件中的第2行完成了登录A服务器下载log文件,用户可以根据日志文件实际所在路径添加“cd”指令切换到正确路径。bat文件中的第3行定义了一个变量“tday”,等号右边是这个变量的实际内容,由3个字符串连接而成。变量“%date%”是系统日期变量,它的输出格式为“2018-11-28”。“%date:~0,4%”是字符串截取的表示方式,左起第一个字符编号为0,从编号为0的字符开始,截取4个字符,结果是“2018”;“%date:~5,2%”是从编号为5的字符开始,截取2个字符,结果是“11”;“%date:~8,2%”是从编号为8的字符开始,截取2个字符,结果是“28”,变量“tday”由这三个字符串连接起来,就是“20181128”。定义这个变量的目的是在后续的指令中将创建一个以当前日期为名字的文件夹。

bat文件中的第4行将upload.txt文件中的内容复制到tmp.txt中,upload.txt文件中的内容与download.txt类似,包含了登录用户名和密码。

bat文件中的第5~8行功能一样,都是向文件tmp.txt中追加内容,一条指令追加1行,因为变量“tday”的内容是20181128,所以实际追加的内容为:

mkdir 20181128

cd 20181128

mput *.log

bye

bat文件中的最后1行与第2行类似,登录10.22.4.172之后,执行tmp.txt中的指令,完成了批量上传log文件。所有文件编写完成并保存后,用户只需要每天双击批处理文件就可以完成下载后上传的工作了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈