![Board logo](images/default/logo.gif)
标题: [文本处理] 如何在bat返回的内容后面增加序号? [打印本页]
作者: wh123wh123 时间: 2023-9-17 10:22 标题: 如何在bat返回的内容后面增加序号?
- @echo off
- setlocal EnableDelayedExpansion
- :top
- ping -n 1 www.baidu.com | find /I "TTL" && goto top
- echo 网络不通
- goto top
复制代码
想在上面代码返回的每行后面增加序号,类似行号似的,如何修改上面的代码?序号要隔空上下对齐
作者: Batcher 时间: 2023-9-17 10:58
回复 1# wh123wh123
在哪里加序号?ping命令的结果?还是echo命令开头?
作者: yyz219 时间: 2023-9-17 11:45
回复 wh123wh123
在哪里加序号?ping命令的结果?还是echo命令开头?
Batcher 发表于 2023-9-17 10:58 ![](http://www.bathome.net/images/common/back.gif)
应该是:ping命令的结果 后面加
作者: wh123wh123 时间: 2023-9-17 12:04
回复 2# Batcher
在返回的ping命令的结果后面加序号
作者: wh123wh123 时间: 2023-9-17 12:18
回复 3# yyz219
是的
作者: wh123wh123 时间: 2023-9-17 12:21
本帖最后由 wh123wh123 于 2023-9-17 12:41 编辑
回复 2# Batcher
ping命令的结果后面和echo命令开头分别怎么加?
作者: thp2008 时间: 2023-9-17 17:30
本帖最后由 thp2008 于 2023-9-17 17:32 编辑
- @echo off
- setlocal EnableDelayedExpansion
- set count=0
- :top
- ping -n 1 www.baidu.com | find /I "TTL" || (
- set /a count+=1
- echo !count! 网络不通
- )
- ping -n 1 www.baidu.com | find /I "TTL" && (
- cls
- )
- goto top
复制代码
感觉这个频率有点高,可以加点延时。
下面这个慢一点- @echo off
- setlocal EnableDelayedExpansion
- set count=0
- :top
- ping -n 1 www.baidu.com | find /I "TTL" || (
- set /a count+=1
- echo !count! 网络不通
- )
- ping -n 3 127.0.0.1 > nul
- goto top
复制代码
作者: Five66 时间: 2023-9-17 18:21
再find 或者 findstr 一次?
作者: wh123wh123 时间: 2023-9-17 18:53
回复 8# Five66
每ping一次就加1作为行号,自动添加大奥返回数据的对应行后面。
作者: 77七 时间: 2023-9-17 22:21
你希望的效果是什么样子的?能不能给个例子?
作者: wh123wh123 时间: 2023-9-17 22:37
回复 10# 77七
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 1
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 2
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 3
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 4
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 5
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 6
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 7
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=51 8
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 9
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 10
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=50 11
来自 87.156.66.18 的回复: 字节=32 时间=23ms TTL=52 12
........就是这样的效果,也就是在返回的内容后面自动补上序号或者叫行号,因为网络偶尔卡一下,所以想用肉眼观察网络稳定性,用序号观察是否在变化。
作者: 77七 时间: 2023-9-17 22:47
本帖最后由 77七 于 2023-9-17 22:56 编辑
回复 11# wh123wh123
- @Echo Off
- rem http://www.bathome.net/redirect.php?goto=findpost&ptid=1246&pid=164208
- SetLocal EnableDelayedExpansion
- :loop
- (For /F "delims=" %%i In ('ping -n 1 www.baidu.com ^| find /I "TTL"') Do (
- set /a n+=10001
- Set L1=%%i
- Echo !L1:~0,45! [ !n:~-4! ]
- )) || (
- set /a n+=10001
- set str=网络不通
- echo !str:~0,50! [ !n:~-4! ]
- )
- timeout 1 >nul
- goto :loop
复制代码
作者: wh123wh123 时间: 2023-9-17 23:06
本帖最后由 wh123wh123 于 2023-9-17 23:11 编辑
回复 12# 77七
'str' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
~0,50n:~-4 ]
'?' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'str' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
~0,50n:~-4 ]
'?' 不是内部或外部命令,也不是可运行的程序
如果出现“网络不通”的话,该行后面不需要补序号。
作者: pd1 时间: 2023-9-17 23:55
- <# :
- @echo off
- powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0' |Out-String|Invoke-Expression"
- pause
- #>
- $n=1
- while($true){
- $result=ping -n 1 www.baidu.com
- if($result.Length -eq 40){"网络不通"}
- else{$result|?{$_.contains("TTL")}|%{$_+" "+$n;$n=$n+1;sleep 1}
- }
- }
复制代码
作者: wh123wh123 时间: 2023-9-18 10:48
回复 14# pd1
就是这样的功能效果,但总感觉哪里不得劲,
作者: aloha20200628 时间: 2023-9-18 18:01
给一个纯P版,网络连通时后缀序号,网络不通时前缀序号。最多尝试次数用imax变量控制。- @echo off
- setlocal enabledelayedexpansion
- ::设置尝试次数
- set "imax=5"
- :top
- set/a "i+=1, k=0"
- for /f "delims=" %%v in ('ping -n 1 www.baidu.com ^|find /i "TTL" ') do (
- set "k=1" &(echo,%%v !i!)
- )
- if !k! equ 0 (echo,!i! 网络不通)
- if !i! geq !imax! (endlocal&exit/b)
- goto top
复制代码
作者: 77七 时间: 2023-9-18 21:24
回复 13# wh123wh123
点击复制代码,我测试正常。
作者: wh123wh123 时间: 2023-9-18 21:37
回复 16# aloha20200628
来自 89.156.66.18 的回复: 字节=32 时间=23ms TTL=52 67
'k' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
来自 89.156.66.18 的回复: 字节=32 时间=23ms TTL=52 68
'k' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
作者: 77七 时间: 2023-9-18 21:55
回复 18# wh123wh123
测试16楼代码,正常,你把你用的脚本原件传网盘发上来吧。
作者: wh123wh123 时间: 2023-9-18 22:01
- @echo off
-
- setlocal enabledelayedexpansion
-
- ::设置尝试次数
-
- set "imax=500"
-
- :top
-
- set/a "i+=1, k=0"
-
- for /f "delims=" %%v in ('ping -n 1 www.baidu.com ^|find /i "TTL" ') do (
-
- set "k=1" &(echo,%%v !i!)
-
- )
-
- if !k! equ 0 (echo,!i! 网络不通)
-
- if !i! geq !imax! (endlocal&exit/b)
-
- goto top
复制代码
回复 17# 77七
作者: 77七 时间: 2023-9-18 22:04
回复 20# wh123wh123
测试正常。
需要看脚本文件原件。
作者: wh123wh123 时间: 2023-9-18 22:19
回复 21# 77七
文件编码ANSI的bat文件
作者: 77七 时间: 2023-9-18 22:35
回复 22# wh123wh123
检查下换行符号。
作者: wh123wh123 时间: 2023-9-18 22:41
回复 23# 77七
你把16楼保存为文本文件上传上来,我下载看看有什么不同
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |