批處理新手入門導讀[視頻教程]批處理基礎視頻教程[視頻教程]VBS基礎視頻教程
[批處理文件精品]批處理版照片整理器[批處理文件精品]純批處理備份&還原驅動在線第三方下載
返回列表 發帖

[文本處理] [已解決]批處理查找txt中符合條件的內容,并執行操作?

本帖最后由 滴血雄鷹 于 2020-6-16 21:41 編輯

查找txt中符合條件的內容,并執行操作?
  1. @echo off
  2. for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.11.%%i >nul && echo 192.168.11.%%i ping入成功 || echo 192.168.11.%%i ping入失敗 && echo 192.168.11.%%i >IP.txt)
  3. for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.15.%%i >nul && echo 192.168.15.%%i ping入成功 || echo 192.168.15.%%i ping入失敗 && echo 192.168.15.%%i >>IP.txt)
  4. for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.19.%%i >nul && echo 192.168.19.%%i ping入成功 || echo 192.168.19.%%i ping入失敗 && echo 192.168.19.%%i >>IP.txt)
  5. for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.27.%%i >nul && echo 192.168.27.%%i ping入成功 || echo 192.168.27.%%i ping入失敗 && echo 192.168.27.%%i >>IP.txt)
  6. for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.31.%%i >nul && echo 192.168.31.%%i ping入成功 || echo 192.168.31.%%i ping入失敗 && echo 192.168.31.%%i >>IP.txt)
復制代碼
通過上面代碼未Ping通的IP存入IP.txt


想要在上面的代碼下面添加代碼:(查找IP.txt中符合條件的內容,并執行操作?)
如果在IP.txt中,同一IP段(如出現下面形式192.168.11.X)有超過3個以上出現,就打開某個聲音文件報警(如打開a.mp3),反之打開IP.txt。
192.168.11.2
192.168.11.3
192.168.11.4

回復 1# 滴血雄鷹
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ('type "IP.txt"') do (
  4.     set /a _%%~ni+=1
  5.     if !_%%~ni! equ 3 (
  6.         start "" "C:\test\a.mp3"
  7.         goto :eof
  8.     )
  9. )
  10. start "" "IP.txt"
復制代碼
1

評分人數

    • 滴血雄鷹: 謝謝!代碼解決了我的問題!技術 + 1
【批處理在線視頻分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公眾號、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我幫忙寫的代碼不需要付錢,不用找我要支付寶或微信賬號。如果一定要給,請到微信群給大家發紅吧。

TOP

本帖最后由 滴血雄鷹 于 2020-6-16 12:50 編輯

回復 2# Batcher


@echo off
:time
setlocal enabledelayedexpansion
for /f %%i in ('type "IP.txt"') do (
    set /a _%%~ni+=1
    if !_%%~ni! equ 3 (
        start "" "C:\test\a.mp3"
        goto :eof
    )
)
start "" "IP.txt"

@echo  off
for /l %%i in (2,-1,0) do (
cls
echo  等待%%i秒后,重新ping...
ping 127.1 -n 2 >nul
)

goto time



我加了紅字的代碼,在第3次自動運行時,就出錯。即使IP.txt中只有一行IP,也會彈出報警(運行a.mp3)?

TOP

回復 3# 滴血雄鷹


這里下面再加一行
start "" "IP.txt"
endlocal
【批處理在線視頻分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公眾號、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我幫忙寫的代碼不需要付錢,不用找我要支付寶或微信賬號。如果一定要給,請到微信群給大家發紅吧。

TOP

回復 4# Batcher

加了endlocal后,下面代碼無法運行了?

@echo  off
for /l %%i in (2,-1,0) do (
cls
echo  等待%%i秒后,重新ping...
ping 127.1 -n 2 >nul
)

goto time

TOP

回復 5# 滴血雄鷹


    請把所有的 @echo off 刪掉再執行,看看是哪一行出現了問題。
【批處理在線視頻分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公眾號、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我幫忙寫的代碼不需要付錢,不用找我要支付寶或微信賬號。如果一定要給,請到微信群給大家發紅吧。

TOP

本帖最后由 滴血雄鷹 于 2020-6-16 20:26 編輯

回復 6# Batcher



代碼運行結果:
如果在IP.txt中,
低于3個IP,可以循環運行。
但如果有3個IP在IP.txt中,可以彈出報警(即運行a.mp3),但是BAT就退出了,不循環運行。
我修改了下面的紅字,就可以循環了。


@echo off
:start
setlocal enabledelayedexpansion
for /f %%i in ('type "IP.txt"') do (
    set /a _%%~ni+=1
    if !_%%~ni! equ 3 (
        start "" "C:\test\a.mp3"&&goto time
        goto :eof
    )
)
start "" "IP.txt"

:time
@echo  off
for /l %%i in (2,-1,0) do (
cls
echo  等待%%i秒后,重新ping...
ping 127.1 -n 2 >nul
)

goto start


另外:(查找IP.txt中符合條件的內容,并執行操作?)
如果在IP.txt中,只要有一個IP地址,就打開某個聲音文件報警(如打開a.mp3),反之繼續運行代碼。這個代碼怎么改?是不是將 if !_%%~ni! equ 3 (  改成 if !_%%~ni! equ 1 (?

@echo off
:start
for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.11.%%i >nul && echo 192.168.11.%%i ping入成功 || echo 192.168.11.%%i ping入失敗 && echo 192.168.11.%%i >IP.txt)
for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.15.%%i >nul && echo 192.168.15.%%i ping入成功 || echo 192.168.15.%%i ping入失敗 && echo 192.168.15.%%i >>IP.txt)
for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.19.%%i >nul && echo 192.168.19.%%i ping入成功 || echo 192.168.19.%%i ping入失敗 && echo 192.168.19.%%i >>IP.txt)
for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.27.%%i >nul && echo 192.168.27.%%i ping入成功 || echo 192.168.27.%%i ping入失敗 && echo 192.168.27.%%i >>IP.txt)
for /L %%i in (2,1,4) do (ping -n 1 -w 40 192.168.31.%%i >nul && echo 192.168.31.%%i ping入成功 || echo 192.168.31.%%i ping入失敗 && echo 192.168.31.%%i >>IP.txt)

@echo off
setlocal enabledelayedexpansion
for /f %%i in ('type "IP.txt"') do (
    set /a _%%~ni+=1
    if !_%%~ni! equ 1 (
        start "" "C:\test\a.mp3"&&goto time
        goto :eof
    )
)

:time
@echo  off
for /l %%i in (2,-1,0) do (
cls
echo  等待%%i秒后,重新ping...
ping 127.1 -n 2 >nul
)

goto start

TOP

  1. @echo off
  2. :start
  3. setlocal enabledelayedexpansion
  4. for /f %%i in ('type "IP.txt"') do (
  5.     set /a _%%~ni+=1
  6.     if !_%%~ni! equ 3 (
  7.         endlocal
  8.         start "" "c:\test\a.mp3"
  9.         goto :time
  10.     )
  11. )
  12. endlocal
  13. start "" "IP.txt"
  14. :time
  15. ...
  16. goto :start
復制代碼

TOP

回復 8# WHY


如果在IP.txt中,只要有一個IP地址,就打開某個聲音文件報警(如打開a.mp3),反之繼續運行代碼。這個代碼怎么改?是不是將 if !_%%~ni! equ 3 (  改成 if !_%%~ni! equ 1 (?

TOP

回復 9# 滴血雄鷹
  1. @echo off
  2. for /f %%i in ('type "IP.txt"') do (
  3.     start "" "C:\test\a.mp3"
  4.     goto :time
  5. )
  6. :time
  7. for /l %%i in (2,-1,0) do (
  8. ......
復制代碼
【批處理在線視頻分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公眾號、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我幫忙寫的代碼不需要付錢,不用找我要支付寶或微信賬號。如果一定要給,請到微信群給大家發紅吧。

TOP

本帖最后由 滴血雄鷹 于 2020-6-18 00:02 編輯

回復 10# Batcher


在IP.txt中,這個代碼沒有IP地址,也會打開某個聲音文件報警(如打開a.mp3)。我修改了下8樓的代碼,可以使用了。

TOP

返回列表
捕鱼大师官网客服电话 一起配资网 上海11选5任走势图 四川快乐12一定牛开奖 上海11选五5开奖结果3D 3d图谜牛彩总汇 什么是股票型基金 江西快3开奖结果定牛 在线股票开户必到久联配资 福利彩3d开奖结果 七星彩排列技巧法 今日股票大盘指数多 我想看看吉林11选5 陕西十一选五手机版 黑龙江22选5开奖结果今晚的 黑龙江6 1开奖结果奖池 30天100元9码滚雪球图