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

[文本处理] [已解决]批处理字符串截取IP和端口号

下面的文本文档里面,截取到里面的IP和端口号
例如
175.155.24.35:33890
175.155.24.20:33890

  1. for /f "tokens=1,2 delims=:" %%a in (ipgroup.txt) do (echo %%a %%b)
复制代码
1

评分人数

#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

POWERSHELL
  1. $SourceFile="D:\test mu\ipgr oup.txt"
  2. $OutFile="D:\test mu\output.txt"   
  3. $result=Get-Content -path $SourceFile|%{$_ -split "outerip`":`""}|%{$_ -split "`",`""}|?{$_ -match "(\d+\.){3}\d+"}|Out-File -FilePath $OutFile
  4. pause
复制代码
1

评分人数

TOP

回复 2# ivor


    您好,您这个代码运行之后获取的不是IP和端口号

TOP

回复 3# yhcfsr


    后续脚本有问题还能请教吗?

TOP

回复 5# luohao8810


    加我QQ吧,33892006

TOP

本帖最后由 慕夜蓝化 于 2018-2-5 17:19 编辑
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (ipgroup.txt) do (
  4. set "str=%%i"
  5. for %%j in ([ {  } ]) do (
  6. set str=!str:%%j=!
  7. )
  8. for %%a in (!str!) do (
  9. set "_%%a=%%a"
  10. )
  11. )
  12. for /f "tokens=1,* delims==" %%i in ('set _^|findstr "outerip"') do (
  13. set "str=%%j"&set str=!str:":"=","!
  14. for %%a in (!str!) do set "str=%%~a"
  15. echo,!str!
  16. )
  17. pause
复制代码
1

评分人数

踏实一些点.不要着急.你想要的时间都会给你.2

TOP

凑个热闹
  1. use Modern::Perl;
  2. use JSON;
  3. use File::Slurp;
  4. my $text = read_file( "ipgroup.txt" );
  5. my $struct = from_json( $text );
  6. for my $e ( @$struct )
  7. {
  8.     for my $ips ( @{ $e->{ips} } )
  9.     {
  10.         say $ips->{name}, " - ", $ips->{outerip};
  11.     }
  12. }
复制代码
1

评分人数

    • 老刘: JSON解析**好技术 + 1

TOP

凑热闹+1,存批
  1. ' &cscript -e:vbscript -nologo "%~0" >结果.txt &start "" 结果.txt
  2. Text = CreateObject("Scripting.FileSystemObject"). _
  3. GetFile("ipgroup.txt"). _
  4. OpenAsTextStream(1). _
  5. ReadAll
  6. Set regex = New RegExp
  7. regex.Global = True
  8. regex.Pattern="\d+\.\d+\.\d+\.\d+:\d+"
  9. For Each match In regex.Execute(text)
  10. wsh.echo match
  11. Next
复制代码

TOP

返回列表