中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 13:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理如何替换活动的字符? 查看 888 回复 8
楼 主 [求助]批处理如何替换活动的字符? 发表于 2010-04-08 14:57 ·  中国 广东 深圳 电信
新手上路
积分 8
发帖 5
注册 2009-10-24 02:42
16年会员
UID 153603
性别 男
状态 离线
58.215.78.51:1433 [sa:123456] Time:16 msec
203.156.144.139:1433 [sa:admin] Time:250 msec
61.147.126.85:1433 [sa:sa] Time:16 msec
222.186.33.232:1433 [sa:123456] Time:0 msec
59.57.228.87:1433 [sa:] Time:78 msec
61.133.30.9:1433 [sa:] Time:109 msec


像这样的我改如何用批处理过滤出下面这样?

58.215.78.51|sa|123456
203.156.144.139|sa|admin
61.147.126.85|sa|sa
222.186.33.232|sa|123456
59.57.228.87|sa|
61.133.30.9|sa|
2 发表于 2010-04-08 15:08 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
源文件a.txt
@echo off
for /f "tokens=1-4 delims=: " %%a in (a.txt) do set/p=%%a^|%%c^|<nul&if /i "%%d"=="time" (echo.)else echo.%%d
pause
3 发表于 2010-04-08 15:11 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
如果要输出到文本b.txt,则:
@echo off
(for /f "tokens=1-4 delims=: " %%a in (a.txt) do set/p=%%a^|%%c^|<nul&if /i "%%d"=="time" (echo.)else echo.%%d)>b.txt


[ Last edited by Hanyeguxing on 2010-4-8 at 15:12 ]
4 发表于 2010-04-08 16:01 ·  中国 广东 深圳 电信
新手上路
积分 8
发帖 5
注册 2009-10-24 02:42
16年会员
UID 153603
性别 男
状态 离线
多谢!!!!!!!!
5 发表于 2010-04-08 16:04 ·  中国 广东 深圳 电信
新手上路
积分 8
发帖 5
注册 2009-10-24 02:42
16年会员
UID 153603
性别 男
状态 离线
C:\Documents and Settings\Administrator\桌面\123\SoPo共享>set/p=58.215.78.51|sa| 0<nul & if /I "123456" == "time" (echo.) else echo.123456
58.215.78.51|sa|123456

C:\Documents and Settings\Administrator\桌面\123\SoPo共享>set/p=203.156.144.139|sa| 0<nul & if /I "admin" == "time" (echo.) else echo.admin
203.156.144.139|sa|admin

C:\Documents and Settings\Administrator\桌面\123\SoPo共享>set/p=61.147.126.85|sa| 0<nul & if /I "sa" == "time" (echo.) else echo.sa
61.147.126.85|sa|sa

C:\Documents and Settings\Administrator\桌面\123\SoPo共享>set/p=222.186.33.232|sa| 0<nul & if /I "123456" == "time" (echo.) else echo.123456
222.186.33.232|sa|123456

C:\Documents and Settings\Administrator\桌面\123\SoPo共享>set/p=59.57.228.87|sa| 0<nul & if /I "Time" == "time" (echo.) else echo.Time
59.57.228.87|sa|

C:\Documents and Settings\Administrator\桌面\123\SoPo共享>set/p=61.133.30.9|sa| 0<nul & if /I "Time" == "time" (echo.) else echo.Time
61.133.30.9|sa|



处理后为什么成这样了?
6 发表于 2010-04-08 16:08 ·  中国 广东 深圳 电信
新手上路
积分 8
发帖 5
注册 2009-10-24 02:42
16年会员
UID 153603
性别 男
状态 离线
还是无法处理

[ Last edited by ddhack on 2010-4-8 at 16:12 ]
7 发表于 2010-04-08 16:30 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
1,我写的是批处理,不是直接在cmd运行的
2,批处理第一行必须是@echo off以关闭回显
8 发表于 2010-04-08 17:06 ·  中国 广东 佛山 顺德区 电信
初级用户
★★
积分 151
发帖 106
注册 2009-10-09 21:24
16年会员
UID 152856
性别 男
来自 河南省
状态 离线
Hanyeguxing
你好,delims=[]: "这个地方朋点不明白,麻烦你给解释下好吗?
9 发表于 2010-04-08 17:35 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
Originally posted by zaixinxiangnian at 2010-4-8 17:06:
Hanyeguxing
你好,delims=: "这个地方朋点不明白,麻烦你给解释下好吗?

全文本内使用:这三个符号以及空格分隔
在delims=中,如果同时使用空格和其他符号分隔,空格要放在最后面
论坛跳转: