首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当tracert命令通过批处理文件运行时,查找“请求超时”

问当tracert命令通过批处理文件运行时,查找“请求超时”
EN

Stack Overflow用户
提问于 2017-09-26 02:37:10
回答 2查看 1.1K关注 0票数 1

我必须检查多个ip地址。因此,我创建一个批处理文件来获取所有ip结果,如下所示。

代码语言:javascript
复制
@echo off
if exist D:\tracert\computers.txt goto Label1
echo.
echo Cannot find d:\tracert\computers.txt
echo.
Pause
goto :eof

:Label1
for /f %%i in (d:\tracert\computers.txt) do call :trace %%i
notepad D:\tracert\%1.txt
goto :eof

:trace
echo Tracing %1
tracert -h 200 %1 >> D:\tracert\testing.csv

在computers.txt文件中,我逐行写所有ip。

上面的代码没有问题,我可以得到正确的结果。但是,问题是,当我运行Request time out.命令时,我无法尝试找到tracert。

我想找到Request time out.,如果找到了,我希望停止当前的tracert命令,并将结果写到一个文件中,并再次为下一个ip循环。如果找不到,只需将结果写入文件。

我想这样做的主要原因是我想减少运行这个批处理文件所花费的时间。

所以,我像这样修改代码,但是它不起作用。

代码语言:javascript
复制
:trace
echo Tracing %1
tracert -h 200 %1 
if find /c /i "Request time out." GEQ 0 (
    echo %1>>D:\tracert\%1.txt
    goto :Label1
) else ( echo %1>>D:\tracert\%1.txt )
notepad D:\tracert\%1.txt

我不确定我是否能像上面所示的那样搜索,因为我是新手。我非常感谢你的任何建议。

EN

回答 2

Stack Overflow用户

发布于 2017-09-26 02:55:36

这里有一个想法,只适用于修补程序,并且find字符串是正确的

代码语言:javascript
复制
:trace
echo Tracing %1
tracert -h 200 %1 | find /i "Request time out" && (
    >>D:\tracert\%1.txt echo %1) || (>>D:\tracert\%1.txt echo %1
    goto :Label1)
start D:\tracert\%1.txt

您确实应该学会使用双引号来保护字符串/变量内容,但这超出了您问题的范围,因此没有被触及。

票数 1
EN

Stack Overflow用户

发布于 2017-09-26 07:26:56

您需要确保拼写正确,否则您将找不到字符串。注意d中的timed

代码语言:javascript
复制
@echo off
:trace
echo Tracing %1
tracert -h 200 %1 | find /i "Request timed out" >>%1.txt

第二,IP将始终返回有效的IP或以请求开头的内容。所以这也是可行的。

代码语言:javascript
复制
@echo off
:trace
echo Tracing %1
tracert -h 200 %1 | find /i "Request" >>%1.txt

因此,它将响应到hostname01.txt的内容如下:

2*请求超时。 3*请求超时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46416991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档