批處理程序中的“多線程”處理代碼
如下內(nèi)容將簡(jiǎn)單舉例,在WINDOWS下使用批處理做多進(jìn)程并發(fā),以達(dá)到“多線程”的效果。
例:需要PING 192.168.0.1到192.168.0.254的所有IP地址,并將是否能PING通的結(jié)果輸出到log.txt
實(shí)現(xiàn)如下:
rem 主程序.bat,只需一行代碼,調(diào)用checkip.bat,經(jīng)測(cè)試,CPU2.6G MEM1G可并發(fā)40個(gè)左右的進(jìn)程
for /l %%i in (1,1,254) do (start /min cmd /c checkip.bat 192.168.0.%%i)
rem checkip.bat內(nèi)容如下:
ping %1 -n 1
if %errorlevel%==0 (echo %1 alive>>log.txt) else (echo %1 dead>>log.txt)
根據(jù)以上資料,我自己進(jìn)行了修改,只需要一個(gè)主程序就能執(zhí)行代碼:
程序進(jìn)化
@echo off
if "%1"=="" (for /l %%a in (1,1,100) do (start /min cmd /c %0 10.120.6.%%a&ping 127.0.0.1 -n 1>nul))
if not "%1"=="" (ping -a %1 -n 1|find "reply" /i&&echo alive %1>>LogIP.txt||echo dead %1>>LogIP.txt)
為了使代碼過(guò)長(zhǎng),方便閱讀,我分成了兩行,其實(shí)一行就可以完成的。你可以自己修改,直接在cmd窗口運(yùn)行的語(yǔ)句,如果你寫(xiě)不出來(lái),可以再來(lái)問(wèn)我。
程序知識(shí)點(diǎn)說(shuō)明:
1.判斷參數(shù)是否為空
2.使用start命令,請(qǐng)注意和goto和call的區(qū)別
3.使用ping做延遲
4.使用find命令判斷IP是否開(kāi)機(jī)狀態(tài)并記錄到日志中
5.提示信息禁止輸出。
程序再進(jìn)化
為了每次執(zhí)行后清空日志文件,修改代碼如下:
@echo off
if "%1"=="" (
if exist "logip.txt" del LogIp.txt
for /l %%a in (1,1,100) do (start /min cmd /c %0 10.120.6.%%a&ping 127.0.0.1 -n 1 1>nul))
if not "%1"=="" (ping -a %1 -n 1|find "reply" /i&&echo alive %1>>LogIP.txt||echo dead %1>>LogIP.txt)
當(dāng)然,如果你想使用兩個(gè)bat文件,可以直接把兩行代碼分別寫(xiě)在兩個(gè)文件中,每個(gè)文件寫(xiě)一行也可以。
說(shuō)明:
1.在for語(yǔ)句的最后,有ping 127.0.0.1 -n 1 1>nul,-n 1表示ping1次,后面的1>nul表示正常信息重定向禁止輸出,具體博客內(nèi)容其他文章句柄重定向。
2.語(yǔ)句if exist "logip.txt" del LogIp.txt可以使用 echo [%date% %time%]>LogIp.txt 來(lái)代替,它們兩句的作用是相同的,具體使用就看個(gè)人用法了
以上是自己的一些心得,怕自己忘記,記錄在此。
補(bǔ)充參考 jack_Meng
相關(guān)文章
一鍵關(guān)閉危險(xiǎn)端口的批處理(防止黑客入侵)
一鍵關(guān)閉危險(xiǎn)端口的bat代碼,防止黑客入侵,在一定程度上加強(qiáng)了系統(tǒng)安全2012-06-06Windows?Bat實(shí)現(xiàn)延時(shí)功能的幾種常見(jiàn)方式小結(jié)
本文主要介紹了Windows?Bat實(shí)現(xiàn)延時(shí)功能的幾種常見(jiàn)方式小結(jié),包括ping命令,timeout命令,choice命令,for循環(huán),sleep命令及VBScript.sleep命令這六種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02批處理應(yīng)用:使用FLASHGET檢查Mcafee SuperDat更新
批處理應(yīng)用:使用FLASHGET檢查Mcafee SuperDat更新...2007-04-04css js 圖片壓縮批處理命令(基于YUI Compressor)
我的css js 圖片壓縮批處理命令,比較好用的就是基于YUI Compressor的。網(wǎng)上也有很多朋友打包好的,腳本之家提供下載過(guò)。2011-01-01