找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25637|回复: 5

[文本处理] 批处理如何获取txt指定内容并执行?

[复制链接]
发表于 2019-4-2 11:25:28 | 显示全部楼层 |阅读模式
请教两个问题:

有一个123.txt内容是

ip6tnl0  DOWN                     0.0.0.0/0   0x00000080 00:00:00:00:00:00
wlan0    UP                               192.168.0.102/24  0x00001043 18:aa:bb:f0:4d:f8
tunl0    DOWN                                   0.0.0.0/0   0x00000080 00:00:00:00:00:00
lo       UP                                   127.0.0.1/8   0x00000049 00:00:00:00:00:00



想用批处理,执行ping   192.168.0.102





另一个 456.txt的内容是

wlan0     Link encap:UNSPEC  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: feaa::2ebb:31ff:feec:3dcc/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1




想用批处理,执行ping   192.168.0.100  

不知道该如何写,请教。
发表于 2019-4-2 12:17:42 | 显示全部楼层
wlan0 UP和inet addr是固定的?不然,那么多ip,怎么知道你要提取哪个呀?有啥特征呀
 楼主| 发表于 2019-4-2 12:30:37 | 显示全部楼层
本帖最后由 xiaodevps 于 2019-4-2 12:32 编辑
wlan0 UP和inet addr是固定的?不然,那么多ip,怎么知道你要提取哪个呀?有啥特征呀
zaqmlp 发表于 2019-4-2 12:17



   


   
是的,  wlan0 up 与   inet addr:  是固定的。
发表于 2019-4-2 13:04:05 | 显示全部楼层
本帖最后由 zaqmlp 于 2019-4-3 10:56 编辑
  1. /*&cls
  2. @echo off
  3. set info=互助互利,代码可用,支付宝扫码头像,感谢赞助
  4. rem 有问题,加QQ956535081及时沟通
  5. title %info%
  6. start mshta VBScript:Execute("msgbox(""%info%""):close")
  7. cd /d "%~dp0"
  8. for /f %%a in ('dir /a-d/b "123.txt" "456.txt"^|cscript -nologo -e:jscript "%~f0"') do (
  9.     ping %%a
  10. )
  11. pause&exit /b
  12. */
  13. var fso=new ActiveXObject('Scripting.FileSystemObject');
  14. while(!WSH.StdIn.AtEndOfStream){
  15.     var file=WSH.StdIn.ReadLine();
  16.     if(fso.FileExists(file)){getip(file);}
  17. }
  18. function getip(file){
  19.     var f=fso.OpenTextFile(file,1),text='';
  20.     text=f.ReadAll();
  21.     var m=text.match(/(\binet\s+addr:|\bwlan0\s+UP\s+)\d+\.\d+\.\d+\.\d+/g);
  22.     f.Close();
  23.     for(var i=0;i<m.length;i++){WSH.echo(m[i].replace(/^.*?(?=\d+\.\d+\.\d+\.\d+)/,''))}
  24. }
复制代码
发表于 2019-4-2 21:49:44 | 显示全部楼层
路过留个爪印,默认WIN7以上。BAT运行。

  1. @Echo Off & CD /d "%~dp0"
  2. Powershell -Execution RemoteSigned ls *.txt^|%%{(gc $_) -match '^^wlan0\s*UP^|inet\s*addr'^|^
  3.         Foreach{$_ -match '\b(^^addr:)?(\d+\.){3}\d+(/\d+$)?\b'^|Out-Null;^
  4.         $IP=$matches[0] -Replace '/\d+^|addr:';'IP Founded: '+$IP;^
  5.         Test-Connection -Computer $IP -count 4^|ft -a}};
  6. pause
复制代码
 楼主| 发表于 2019-4-3 10:31:26 | 显示全部楼层
多谢二位,zaqmlp的代码只能  ping  .168.0.102   前面没有192了,所以用不了,xczxczxcz的代码可以用,谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 01:14 , Processed in 0.018591 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表