windows cmd 批处理文件,用于 32 个 IP 的并行跟踪路由

问题描述

我在文件 tracerouteiplistA.txt 中有 32 个 IP

在名为 tracerouteScriptA.bat 的批处理文件的 for/while 循环中,

我想跟踪所有路由并将结果存储在 traceA.txt 中

如果 10. 是可见的,我想在 traceresponseA.txt 中写入 0。如果 172. 可见,则为 1,否则如果请求超时或失败,我想写 2。

我目前的代码如下 --

$ pip install tweepy --user

解决方法

Powershell 解决方案:

#get all IP
$Result=Get-Content "c:\temp\tracerouteiplistA.txt" | foreach{

    #for every IP we do a traceroute
    Test-NetConnection $_ -TraceRoute | foreach{

    $Current=$_

    #one line by hop
    $_.TraceRoute | foreach{

            if ($_ -like "10.*")
            {
                $Analyse="0"
            }
            elseif ($_ -like "172.*")
            {
                $Analyse="1"
            }
            else
            {
               $Analyse="2"
            }

            #create an objet and send to output            
            [pscustomobject]@{
            IP=$Current.RemoteAddress
            HopIP=$_
            Analyse=$Analyse
            }
                                

         }

    }



} 

#result into file,we take the first result in priority order
$Result | sort Analyse | select Analyse -First 1 -ExpandProperty Analyse | Out-File "c:\temp\traceresponseA.txt"

#if you want look result
$Result