批處理收藏
本文地址:http://qzone.qq.com/blog/1391595-1222271033
一、自動刪N日前的目錄:
>"%temp%\MyDate.vbs" echo dt=date()-N
>>"%temp%\MyDate.vbs"echo s=right(year(dt),4) ^& "-" ^& right("0" ^&month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)
>>"%temp%\MyDate.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do set FiveDay=%%a
for /f "tokens=*" %%a in ('dir /b /ad "D:\000"') do (
if "%%a" lss "%FiveDay%" (
rd /s /q "D:\000\%%a"
)
)
pause
二、自動刪除N日前文件:
@echo off
setlocal enabledelayedexpansion
set SrcDir=D:\rardata
>"%tmp%\MyDel.vbs" echo dt=date()-15
>>"%tmp%\MyDel.vbs" echo s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2)
>>"%tmp%\MyDel.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%tmp%\MyDel.vbs"') do set DateFlag=%%a
for /f "tokens=*" %%a in ('dir /s /b /a-d "%SrcDir%"') do (
set FileDate=%%~ta
set FileDate=!FileDate:-=!
set FileDate=!FileDate:~0,8!
if !FileDate! lss %DateFlag% (
del /f /q "%%a"
)
)
win2000的%data%是這樣格式: 星期日 2008-08-24 則set FileDate=!FileDate:~4,10!
win2000用以上方法不成,改用以下代碼,下載date的增強版程序datex.exe,目前可下載用的地址:http://www.westmesatech.com/files/sst26.zip
setlocal enabledelayedexpansion
set desfolder=e:\rardata
for /f %%a in ('e:\soft\datex.exe -f "yymmdd" -o-16') do set DateFlag=%%a
echo %DateFlag%
for /f "tokens=*" %%a in ('dir /s /b /a-d "%desfolder%"') do (
set FileDate=%%~ta
set FileDate=!FileDate:-=!
set FileDate=!FileDate:~0,6!
if !FileDate! lss %DateFlag% (
del /f /q "%%a"
)
)
exit
在win2000下測試成功.
三、批處理定時關機:schtasks /create /ru system /sc daily /mo 1 /st 18:56:00 /tn shut /tr "shutdown -s -f"
schtasks /ru system
用/ru開關指定以system權限運行計劃任務,不需要密碼。
四、自動對sql server備份文件一一對應壓縮:
@echo off
set rar_="c:\program files\winrar\rar.exe"
set Today=%date:~0,4%%date:~5,2%%date:~8,2%
echo %Today%
for /f "tokens=*" %%a in ('dir /b "F:\backup\sql\*%Today%*.bak"') do (
%rar_% a "F:\backup\sql\%%~na.rar" "F:\backup\sql\%%a"
)
五、自動上傳FTP,且只上傳有歸檔屬性的文件(類似增量備份):
@echo off
set SrcFolder=C:\test
dir /b /aa-d>nul 2>nul
if %errorlevel% equ 1 (
echo No archiving file to FTP
pause
goto :eof
)
set FtpFile=%temp%\TempAcc.txt
>"%FtpFile%" echo USERNAME
>>"%FtpFile%" echo PASSWORD
>>"%FtpFile%" echo bin
for /f "tokens=*" %%a in ('dir /b /aa-d') do (
>>"%FtpFile%" echo put "%SrcFolder%\%%a"
)
>>"%FtpFile%" echo bye
start ftp -v -i -s:"%FtpFile%" IPADDRESS
ping -n 10 127.1>nul
attrib -a *.*
Put直接覆蓋已存在文件.
六、從txt獲取溫度值,大於指定上限值則執行指定命令:
txt 文件名:Ter2008Y4M16D12h.txt
Ter2008Y4M16D13h.txt 每一小時就會生成一個這樣的文件.
txt的格式為: ( 記錄每秒鐘生成一行,時間間隔可以指定,如3分鐘生成一行記錄,
每次要取TXT最後一筆記錄最後一列的值.)
682 2008-4-16 15:00:00 26.75
初稿:
@echo off
set SrcDir=C:\test
:begin
for /f "tokens=*" %%a in ('dir /b /a-d /o-d "%SrcDir%\*.txt"') do (
for /f "usebackq tokens=4 delims=. " %%b in ("%%a") do (
if %%b gtr 30 (
echo start 另一個批處理程序.bat
ping -n 10 127.1>nul
goto :begin
)
)
ping -n 10 127.1>nul
goto :begin
)
上面代碼:由於goto語句的存在,後面的只處理第一行的txt,也就是說只處理最新生成的txt文件。
測試可行代碼:@echo off
set SrcDir=C:\test
:begin
for /f "tokens=*" %%a in ('dir /b /a-d /o-d "%SrcDir%\*.txt"') do (
set NewFile=%%a
goto :next
)
goto :eof
for /f "usebackq tokens=4 delims=. " %%b in ("%SrcDir%\%NewFile%") do (
if %%b gtr 30 (
echo start 另一個批處理程序.bat
ping -n 10 127.1 >nul
goto :begin
)
)
ping -n 10 127.1 >nul
goto :begin
七、批處理讓電腦自動撥號:
WINXPE的pppoe建立ADSL寬帶連接,Modem的電話線連接:
rasdial %dialname% %user% %pass%
其中 %dialname% 代表撥號所用的連接的名字,需要先建立好。%user% 代表PPPOE帳號,%pass% 代表密碼
::特點:添加了自動獲取 網絡連接 代碼,無需手動設置;
@echo off
title PPPoE自動連接
set /p user=請輸入寬帶用戶名:
set /p pass=請輸入寬帶密碼:
set "NIC_flag=Ethernet"
for /f "tokens=1,2,3,* delims=: " %%i in ('ipconfig /all') do (
if "%%i"=="%NIC_flag%" set NIC_name=%%k)
Rem '/*=============撥號============*/
rasdial %NIC_name% %user% %pass%
pause>nul
八、Lotus備份要求:只需備份d:\Data\下的*.ini,*.id,*.nsf,*.ndk及其子文件夾dgoa,bmmail,mail的全部文件進行備份,data目錄下的其它文件及子目錄不需要備份.選擇這些文件及子目錄用rar進行壓縮生成一個備份壓縮包的批處理。
@echo off
rem 請放在d:\data\目錄下運行
set rar_="c:\program files\winrar\rar.exe"
for %%a in (ini id nsf ndk) do (
%rar_% a temp.rar *.%%a
)
for %%a in (dgoa bmmail mail) do (
for /f "delims=" %%b in ('dir /s/b/a-d "%%a\*.*"') do (
%rar_% a -ep1 temp.rar %%b
)
)
echo.&echo 任務完成
ping -n 4 127.1>nul
正常使用:
@echo off
sc stop "Lotus Domino Server (R6LotusDominoData)"
ping -n 200 127.1>nul
set SrcFolder=D:\r6\lotus\domino\Data
set desfolder=f:\rardata\lotus
set rar_="c:\program files\winrar\rar.exe"
set Today=%date:~0,4%%date:~5,2%%date:~8,2%
echo %Today%
echo *** %Today% Lotus data 開始壓縮時間*** >>f:\soft\arlog.txt
time /t >>f:\soft\arlog.txt
%rar_% a -pDa*********1 -r -agYYYYMMDD-NN "%desfolder%\lotusdata" "%SrcFolder%"
time /t >>f:\soft\arlog.txt
echo ==%Today% Lotus data 壓縮完成== >>f:\soft\arlog.txt
cho.
ping -n 100 127.1>nul
dir %desfolder% /b /aa-d>nul 2>nul
if %errorlevel% equ 1 (
echo No archiving file to FTP
pause
goto :eof
)
set FtpFile=%temp%\TempAcc.txt
>"%FtpFile%" echo ******
>>"%FtpFile%" echo ******
>>"%FtpFile%" echo cd stat
>>"%FtpFile%" echo bin
for /f "tokens=*" %%a in ('dir "%desfolder%" /b /aa-d') do (
>>"%FtpFile%" echo put "%desfolder%\%%a"
)
>>"%FtpFile%" echo bye
echo --------------------------------------------------------------------
echo ***%Today% Lotus data壓縮包數據開始上傳FTP時間***>>f:\soft\arlog.txt
time /t >>f:\soft\arlog.txt
ftp -v -i -s:"%FtpFile%" 192.168.1.61 >>f:\soft\arlog.txt
time /t >>f:\soft\arlog.txt
echo ==%Today% Lotus data壓縮包數據上傳FTP完成== >>f:\soft\arlog.txt
ping -n 10 127.1>nul
attrib -a "%desfolder%"\*.*
del %temp%\TempAcc.txt
setlocal enabledelayedexpansion
>"%tmp%\MyDel.vbs" echo dt=date()-16
>>"%tmp%\MyDel.vbs" echo s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^& right("0" ^& day(dt),2)
>>"%tmp%\MyDel.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%tmp%\MyDel.vbs"') do set DateFlag=%%a
for /f "tokens=*" %%a in ('dir /s /b /a-d "%desfolder%"') do (
set FileDate=%%~ta
set FileDate=!FileDate:-=!
set FileDate=!FileDate:~0,8!
if !FileDate! lss %DateFlag% (
del /f /q "%%a"
)
)
sc start "Lotus Domino Server (R6LotusDominoData)"
九、解鎖註冊表VBS
DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")
WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools",0,"REG_DWORD"
WSH.POPUP("註冊表解鎖成功!")
十、DOS下的註冊表編輯器RegView,圖形界面,有點像WINDOWS下的REGEDIT;
啟動時需要選擇註冊表文件,也就是C:\WINDOWS\system32\config下的SAM、DEFAULT等無擴展名的文件。
十一、創建自動日期備份的批處理
ERUNT有一個很方便的功能,可以在命令提示符狀態下運行。利用它的一些參數,能夠實現自動將註冊表文件保存到以當天日期命名的文件夾中。
打開一個文本文件,輸入以下內容:
C:\erunt\ERUNT.EXE %SystemRoot%\ERDNT\#Date# /noconfirmdelete
第一部分是文件所在路徑,第二部分是「備份到」的位置,也就是C:\WINNT\ERDNT目錄,並以當前日期做為子文件夾名,「noconfirmdelete」表示如果存在同名文件夾則自動刪除。
將該文件保存為「backupreg.bat」,並放置在桌面上,以便隨時使用。
小提示免費奉送的註冊表優化小工具 「NTREGOPT.EXE」
第三步:何時備份註冊表
雖然你可以將這個批處理文件放置在「開始→程序→啟動」或是作為登錄腳本,從而實現和Windows98那樣的Windows啟動自動備份,或者利用「任務計劃」進行定時備份,但我們認為這樣並沒有必要,其實備份註冊表的最佳時機在於:更新系統文件或驅動程序、安裝新程序前(保證Windows一切運行正常),或即將執行有風險操作,這時才需要雙擊這個批處理進行註冊表備份,備份文件會保存到類似「C:\WINNT\ERDNT\2004-8-15」這樣的文件夾中。
第四步:恢復註冊表
如果系統還能正常啟動,那麼可以直接進入「C:\WINNT\ERDNT\」文件夾選擇之前的備份子文件夾(比如:「2004-8-15」),然後運行其中的「ERDNT.EXE」進行註冊表恢復。
如果系統無法啟動,你可以嘗試在啟動菜單中按F8鍵後選擇「最後一次正確配置」,如果無效,可以再試著進入安全模式,如果都不成功,就需要採用下面的方法來恢復註冊表了。
方法一:如果安裝有雙系統,可以進入另一個正常的Windows,運行備份文件夾中的「ERDNT.EXE」進行恢復,如果在另一個Windows中盤符發生了變化,比如:C盤變為了D盤,恢復前,還要用記事本打開備份文件夾的「ERDNT.INF」文件,將其中所有的「C:」替換成「D:」。
方法二:用Windows2000/XP安裝光盤啟動系統,在安裝歡迎菜單中按下R鍵,再按C鍵,進入故障恢復控制台,然後輸入密碼登錄系統,接著輸入「CDC:\WINNT\ERDNT」命令進入備份註冊表文件的所在文件夾,接著再用CD命令進入相應備份文件夾,比如:「CD 2004-8-15」。
然後輸入「batch erdnt.con」命令並回車,這樣備份的註冊表文件便會被恢復,完成後輸入「exit」退出故障恢復控制台。接下來系統會以所選擇的註冊表備份重啟。
小提示
★註冊表無法恢復或恢復無效的情況
設備或設備驅動程序損壞,恢復無效。
系統文件損壞或丟失,恢復無效。
硬盤發生邏輯或物理損壞或分區表錯誤,恢復無效。
感染病毒沒有清除乾淨,恢復無效。
★把故障恢復控制台裝進硬盤
每次都用Windows2000/XP安裝光盤來進入故障恢復控制台是不是有些麻煩?其實只要將安裝光盤放入光驅,接著按下Win+R組合鍵,輸入「X:\i386\winnt32.exe/cmdcons」(其中「X」為光驅的盤符,請根據實際情況修改),回車後即可將故障恢復控制台裝進硬盤,以後再恢復註冊表,只要從啟動菜單中選擇故障恢復控制台的選項即可快速進入並進行恢復。
十二、SQL server2000數據文件離線備份,目的是為了還原數據庫時直接附加上去,需用時間較短.
Taskkill /f /IM autoauditing.exe
Taskkill /f /IM FEXchange.exe
rem ntsd -c q -pn FEXchange.exe
rem ntsd -c q -pn autoauditing.exe
net stop SQLSERVERAGENT
net stop MSSQLSERVER
ping -n 50 127.1>nul
set rar_="c:\Program Files\winrar\rar.exe"
set data="D:\ptas_data"
echo compres start rar >>e:\soft\sqlbak.log
for /f "delims=" %%a in ("compres start rar %date% %time:~,5%") do echo %%a>>e:\soft\sqlbak.log
%rar_% a -p****######## -agYYYYMMDDHHMM-NN e:\rardata\13ptas %data%\ptas*.*
for /f "delims=" %%a in ("compres end %date% %time:~,5%") do echo %%a>>e:\soft\sqlbak.log
echo.>>e:\soft\sqlbak.log
ping -n 50 127.1>nul
net start MSSQLSERVER
E:\software\AutoDel\autodel 10 e:\rardata
ping -n 50 127.1>nul
cd /d D:\交換
start FExchange.exe
ping -n 50 127.1>nul
cd /d D:\自動審批
start autoauditing.exe
exit
十三、文件批量重命名
工作需要處理些圖片,把圖片分類放在許多文件夾裡,然後在把每個文件夾裡的圖片加序號改名,比如一個文件夾名字為AAA111,裡面有3個圖片,就要把這3圖片名字改為AAA111-01,AAA111-02,AAA111-03,......
:: xrename.cmd -- 按序號重命名文件,並將目錄名添加到文件名前。
rem 2005-12-12 修正並著色
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /r %%i in (.) do (
set n=1000
for /f "delims=" %%a in (' dir /b "%%i\*.jpg" 2^>nul ') do (
set /a n+=1
ren "%%i\%%a" "%%~ni"-!n:~1!%%~xa
)
)
goto :EOF
取目錄名for /r %i in (.) do @echo %~ni
另:按Jpg相片創建時間排序:(最近的在前面)dir /a-d /b /tc /o-d *.jpg
十四、收發郵件:
收發郵件的VBS和bat
HAT
Set cdo = CreateObject("CDO.Message")
strCfg = "http://schemas.microsoft.com/cdo/configuration/"
With cdo
.Sender = "發送者郵件地址"
.From = "發送者郵件地址"
.To = "接收者郵件地址"
.Fields("urn:schemas:mailheader:X-Priority") = 1
.Fields.Update
.Subject = "郵件標題"
.TextBody = "郵件內容"
.Configuration(strCfg & "SendUsing") = 2
.Configuration(strCfg & "smtpserver") = "發送郵件服務器地址"
.Configuration.Fields.Update
.Send
End With
msgbox "發送完成"
:
NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
set Email = CreateObject("CDO.Message")
Email.From = "xxx@126.com" '發信人地址
Email.To = "139@qq.com" '收信人地址(qq也可)
Email.Subject = "patch mail test" '郵件主題
x="E:\基礎知識\一鍵收發郵件.txt" '發信內容寫在e:\111.txt中
y="E:\小試牛刀\bat2.txt" '這是需發送的附件
Set fso=CreateObject("Scripting.FileSystemObject")
Set myfile=fso.OpenTextFile(x,1,Ture)
c=myfile.readall
myfile.Close
Email.Textbody = c
Email.AddAttachment y
with Email.Configuration.Fields
.Item(NameSpace&"sendusing") = 2
.Item(NameSpace&"smtpserver") = "smtp.126.com" '這是126郵箱的服務器地址
.Item(NameSpace&"smtpserverport") = 25
.Item(NameSpace&"smtpauthenticate") = 1
.Item(NameSpace&"sendusername") = "xxx" '發信人用戶名
.Item(NameSpace&"sendpassword") = "pwd" '發信人密碼
.Update
end with
Email.Send
Set Email=Nothing
一鍵收126郵件.bat
@echo off
set mail=126
set user=xxxxxx
set pass=mmmmmmmmm
set "126=https://entry.mail.126.com/cgi/login?&bCookie=&user=%user%&pass=%pass%"
call start iexplore "%%%mail%%%"
一鍵收163郵件.bat
@echo off
set "var=xxxxxx"
set "num=mmmmmmmmm"
start"163郵箱登錄中" iexplore"https://reg.163.com/logins.jsp?username=%var%&password=%num%&url=http://fm163.163.com/coremail/fcg/ntesdoor2"
十五、清除運行記錄:
@echo off
color 0a
title 清除運行記錄
echo Windows Registry Editor Version 5.00 >>pc.reg
echo [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU] >>pc.reg
regedit /s pc.reg
del pc.reg
TASKKILL /f /IM explorer.exe
start %SystemRoot%\explorer.exe
或:
@echo off
color 0a
title 清除運行記錄
reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU /f
TASKKILL /f /IM explorer.exe
start %SystemRoot%\explorer.exe
十六:每天開機自動備份註冊表,多次開機自動覆蓋當天前一次備份,自動刪除15天前的註冊表備份;
remC:\"Program Files"\ERUNT\AUTOBACK.EXE"%SystemRoot%\ERDNT\AutoBackup\%Date:~0,10% /noconfirmdelete/noprogresswindow /days:15
加自動壓縮且刪當日生成的文件夾,還需加自動刪N日前備份,代碼:
C:\"Program Files"\ERUNT\ERUNT.EXE d:\ERDNT\%Date:~0,10% /noconfirmdelete /noprogresswindow
set Target=d:\ERDNT
set rar_="c:\program files\winrar\rar.exe"
>"%temp%\MyDate.vbs" echo dt=date()-15
>>"%temp%\MyDate.vbs"echo s=right(year(dt),4) ^& "-" ^& right("0" ^&month(dt),2) ^& "-" ^& right("0" ^& day(dt),2)
>>"%temp%\MyDate.vbs" echo wscript.echo s
for /f %%a in ('cscript /nologo "%temp%\MyDate.vbs"') do set FiveDay=%%a
for /f "tokens=*" %%a in ('dir /b /ad %Target%') do (
if "%%a" lss "%FiveDay%" (
rd /s /q "%Target%\%%a"
)
)
for /f %%a in ('dir /s /b /a-d d:\erdnt\%Date:~0,10%') do %rar_% a -agYYYY-MM-DD -o+ d:\erdnt\ %%a
rd /q /s d:\erdnt\%Date:~0,10%
十七、系統盤清理垃圾:
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
十八.進程終止
win2000通過批處理列進程獲取PID,再結合用NTSD終止進程.
win2000裡沒有直接可以顯示進程與進程PID的命令,需要到安裝光盤裡SUPPORT\TOOLS的SUPPORT.CAB裡將tlist解壓出來,放在system32下面,再加上這個語法,注意:win2000下for語法的do後面沒用括號括(在2000里看for語法),我把整個就放一行裡了,執行完後按任意鍵退出.
:在tlist輸出中查找notepad對應的PID值,並將notepad進程殺死
for /f "tokens=1,2" %%i in ('tlist') do @echo %%j | find /i "notepad.exe" 2>nul 1>nul && (ntsd -c q -p %%i)
pause
我試著用它殺死sql*的進程,sqlservr.exe這個要殺兩次.
win2000使用中的代碼:
for /f "tokens=1" %%a in ('tlist^|find /i "edi_input.exe"') do set edipid=%%a
echo PID=%edipid%
ntsd -c q -p %edipid%
tlist -t ——以樹行列表顯示進程(為系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)
kill -F 進程名—— 加-F參數後強制結束某進程(為系統的附加工具,默認是沒有安裝的,在安裝目錄的Support/tools文件夾內)
winxp與2003下可以直接用ntsd -c q -pn autoauditing.exe(進程名)
或:通過已知道的進程名,如QQ.EXE,自動判斷出該進程的PID,並把該進程結束掉,用批處理來實現
@echo off
for /f "tokens=2" %%a in ('tasklist^|find /i "qq.exe"') do set qqpid=%%a
echo PID=%qqpid%
taskkill /pid %qqpid% /f
pause&exit/b
或: Taskkill /f /IM edi_input.exe
OR:
@echo off
for /f "tokens=1,2" %%i in ('tasklist') do (
echo %%i | findstr /i "abc.exe" 1>nul 2>nul && (
ntsd -c q -p %%j & set qq=%%i
)
)
if /i not "%qq%"=="abc.exe" echo 沒有中毒
pause
十九:批處理加密最簡單的辦法
把批處理文件用winrar做成一個自解壓的包,解壓方式為「臨時文件夾」(也可以指定為一個隱蔽的路徑),安靜模式為「全部隱藏」,覆蓋方式為「覆蓋所有文件」
還可以加一個密碼,不過運行的時候就需要輸入正確的密碼才能運行的了。再在解壓後運行中輸入這個批處理文件名就可以了。
比如test.bat這個批處理文件,壓縮之後會生成一個test.exe的可執行文件了,現在已經能用了。不過在文件上按鼠標右鍵還可以看到是winrar的壓縮文件,我再把它的後綴名改為.com或.bat或.cmd都行,這樣用記事本打開一看全是亂碼,他們都以為是用你們上面的方法加密的吧。
二十:掃瞄局域網mac地址並轉換成modiip
http://www.unixwiz.net/tools/nbtscan.html#download (nbtscan下載)
提供的nbtscan和gnu sort來將局域網掃瞄的mac地址處理成modiip的格式。
代碼:
\arc\nbtscan-1.0.35.exe -m 192.168.10.0/24 | .\arc\sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 >>abc.txt
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims= " %%a in (abc.txt) do (
set mac=%%c
set ip=%%a
set cname=%%b
)
Call :modiip %mac::= %
goto eof
:modiip
set cname=%cname:~10,9%
echo %1%2%3%4%5%6=%ip%,%cname%>>mac.ini
pause
D:\>nbatscan -m 192.168.91.0/24
192.168.91.65 MSHOME\XXY 00:1c:25:a5:94:48 SHARING
nbtscan 1.0.35 - 2008-04-08 -
http://www.unixwiz.net/tools/usage: nbatscan [options] target [targets...]
Targets are lists of IP addresses, DNS names, or address
ranges. Ranges can be in /nbits notation ("192.168.12.0/24")
or with a range in the last octet ("192.168.12.64-97")
-V show Version information
-f show Full NBT resource record responses (recommended)
-H generate HTTP headers
-v turn on more Verbose debugging
-n No looking up inverse names of IP addresses responding
-p <n> bind to UDP Port <n> (default=0)
-m include MAC address in response (implied by '-f')
-T <n> Timeout the no-responses in <n> seconds (default=2 secs)
-w <n> Wait <n> msecs after each write (default=10 ms)
-t <n> Try each address <n> tries (default=1)
-1 Use Winsock 1 only
-P generate results in perl hashref format
二十一:用ping循環掃瞄本網段在線IP:
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,256) do (
ping -n 1 -w 100 192.168.1.%%i >nul 2>nul
if !ERRORLEVEL! equ 0 echo IP 192.168.1.%%i 在線!
)
echo 掃瞄成功結果如上!
pause