目錄:
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 5 /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%==5(執行的次數) 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 建立一個檔案夾