bat 批处理脚本

目录:

1:ping多个不同服务器IP

2:每隔一段时间清一次DNS缓存

3:将一个文件夹中的所有文件,分别保存在一个新文件夹中,以保持每个文件夹一个文件

功能1:ping多个不同服务器IP

环境开通防火墙后,经常需要对其他不同服务器进行网络连通测试。这时就需要ping多个不同服务器,这里简单列了一个windows下的批处理文件,简单做下备忘。

步骤:

1、在一个文件夹,先保存一个ping.txt的文件,存放不同机器的ip地址。

10.9.16.91
10.9.16.92
10.9.16.93
10.9.16.97

2、在相同文件夹,编写一个pingtest.cmd的程序文件,用于进行连通性测试。

格式如下:

echo ------------lost connection ip list------------> err.txt
@echo off
for /f %%i in (ip.txt) do (
ping %%i -n 1
if errorlevel 1 echo %%i >>err.txt
)
notepad err.txt

执行完成后,会将执行失败的IP存到err.txt文件中。

------------lost connection ip list------------
10.9.16.91
10.9.16.92
10.9.16.97

功能2:每隔一段时间清一次DNS缓存

预期目标:每隔一段时间清一次DNS缓存,清之前打印当前机器的DNS情况,并将更新时间与次数都打印输出到一个文件中。

实现:脚本开始执行后,需要手动关闭dos窗口才会终止,否则会一直执行。

@echo off

set "a=0"
echo *********定时清理缓存开始*********>>D:\flushdns_01.txt,D:\flushdns_02.txt
echo 日期,时间,次数>>D:\flushdns_01.txt,D:\flushdns_02.txt :loop ipconfig /displaydns >>D:\flushdns_02.txt ipconfig /flushdns set /a "a=%a%+1" echo %date%,%time%,第%a%次 >>D:\flushdns_01.txt,D:\flushdns_02.txt
timeout /t  /nobreak > nul 

goto loop

说明:

ipconfig /displaydns >>D:\flushdns_02.txt    即,将查看DNS结果输出到指定目录中。

timeout /t 5 /nobreak > nul 表示,等待5秒。有的机器可能不支持,需要先手动在dos窗口下执行下,如果不支持,则需要做下简单配置。

参考网上找到的一个小程序

@echo off
setlocal enabledelayedexpansion
set "a=0"
:loop
start "" /b /wait "1.bat"(要执行的程序)
set /a "a=!a!+1"
echo 次数!a!
if %a%==(执行的次数) exit
goto loop

功能3:将一个文件夹中的所有文件,分别保存在一个新文件夹中,以保持每个文件夹一个文件

步骤:

1、将d:\test目录下10个文件的文件名称打印到一个新文件夹ip.txt中。

2、通过for循环获取到ip.txt中的每行文件,每一个文件名称创建一个文件夹,并且将该文件移动到新建的文件夹中。

@echo on
d:
cd d:\test
dir *.* /B >d:\test\ip.txt
for /f %%I in (d:\test\ip.txt) do md d:\test\%%~nI && move %%I d:\test\%%~nI\%%I

说明:

1、for /f %%I in (d:\test\ip.txt) do md d:\test\%%~nI && move %%I d:\test\%%~nI\%%I

这行脚本在dos环境下直接执行需要将%%I转换为%I。

在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable。

2、%%~nI  表示只取变量中的文件名称,还有其他很多取值方式。

3、md ip 创建一个文件夹

上一篇:druid配置数据库连接使用密文密码


下一篇:NATAPP打穿内网