[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

请教两个问题:

有一个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  

不知道该如何写,请教。

wlan0 UP和inet addr是固定的?不然,那么多ip,怎么知道你要提取哪个呀?有啥特征呀
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 xiaodevps 于 2019-4-2 12:32 编辑
wlan0 UP和inet addr是固定的?不然,那么多ip,怎么知道你要提取哪个呀?有啥特征呀
zaqmlp 发表于 2019-4-2 12:17



   


   
是的,  wlan0 up 与   inet addr:  是固定的。

TOP

本帖最后由 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. }
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

路过留个爪印,默认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
复制代码

TOP

多谢二位,zaqmlp的代码只能  ping  .168.0.102   前面没有192了,所以用不了,xczxczxcz的代码可以用,谢谢。

TOP

返回列表