标题: [文本处理] 批处理字符串循环2次如何给变量赋值? [打印本页]
作者: psstudio 时间: 2021-4-25 10:04 标题: 批处理字符串循环2次如何给变量赋值?
源码如下: 一个带宽测速的命令结果字符截取,想把下载的速度和上行的速度并排显示出来,但是这个好像是循环了2次就把前面的变量二次赋值了。有没有什么办法可以保留第一次的赋值变量?- @echo off&setlocal EnableDelayedExpansion
- for /f "tokens=2 delims=:,(" %%j in ('speedtest --accept-license -P0 -s 29071^|findstr Mbps') do (
- set "line1=%%j"
- set "line2=%%j"
- echo !line1! !line2!
- )
- pause
复制代码
作者: went 时间: 2021-4-25 10:23
for ... do (
if "!line1"=="" (
set "!line1=%%j"
) else (
echo !line1! %%j
)
)
作者: qixiaobin0715 时间: 2021-4-25 10:33
- for ...... (
- set /a n+=1
- if !n!==1 (set line1=%%j) else set line2=%%j
- )
- echo,%line1%
- echo,%line2%
- pause
复制代码
作者: 路过 时间: 2021-4-25 11:56
本帖最后由 路过 于 2021-4-25 16:30 编辑
- @echo off&setlocal EnableDelayedExpansion
- for /f "tokens=2 delims=:,(" %%j in ('speedtest --accept-license -P0 -s 29071^|findstr Mbps') do (
- if not defined line1 (set "line1=%%j")
- set "line2=%%j"
- )
- echo !line1! !line2!
复制代码
作者: newswan 时间: 2021-4-25 14:03
- set n=0
- for /f "tokens=2 delims=:,(" %%j in ('speedtest --accept-license -P0 -s 29071^|findstr Mbps') do (
- set /a n+=1
- set "line!n!=%%j"
- )
复制代码
作者: psstudio 时间: 2021-4-25 14:12
回复 4# 路过
你这个不行,大哥。
作者: psstudio 时间: 2021-4-25 14:19
回复 3# qixiaobin0715
for /f "tokens=2 delims=:,(" %%j in ('speedtest --accept-license -P0 -s 29071^|findstr Mbps') do (
set /a n+=1
if !n!==1 (set line1=%%j) else set line2=%%j
)
echo %line2% %line1%
效果不错! 感谢大哥~
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |