第 16 楼
发表于 2008-05-29 21:54 · 中国 四川 成都 电信
中级用户
★★
积分 297 发帖 135 注册 2006-10-21 12:00 19年会员 UID 67627 性别 男
状态 离线
Originally posted by 26933062 at 2008-5-29 09:35 PM:
呵呵,楼上的就真的存在效率问题了。
我也考虑过效率问题
只是想过另外一个问题:系统处理!str:~0,1!进行变量截取时不需要花时间吗?
结合大家的讨论,变量截取的效率可能比findstr高吧
我觉得WANKOILZ兄的还应该完善一下
if "!str:~0,1!"=="" echo.
[
Last edited by zqz0012005 on 2008-5-29 at 09:56 PM ]
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
amio
+1
2008-05-29 22:21
第 17 楼
发表于 2008-05-29 21:58 · 中国 重庆 电信
初级用户
★★
积分 198 发帖 89 注册 2007-09-06 23:22 18年会员 UID 96746 性别 男 来自 重庆
状态 离线
呵呵,我只是想针对楼主那种简单形式的文本,就没用完善的方法,管道+findstr会降低效率。当然要考虑周全也只有用findstr了。
第 18 楼
发表于 2008-05-29 22:02 · 中国 北京 联通互联网数据中心
中级用户
★★
积分 206 发帖 93 注册 2007-08-16 17:19 18年会员 UID 95263 性别 男
状态 离线
我那不是简单的文本 就是改inf 文件
先帮我看看 15楼的问题吧
第 19 楼
发表于 2008-05-29 22:07 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
判断有
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (a.txt) do (
set "str=%%a"
set "str=!str:
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
amio
+2
2008-05-29 22:20
致精致简!
第 20 楼
发表于 2008-05-29 22:16 · 中国 重庆 电信
初级用户
★★
积分 198 发帖 89 注册 2007-09-06 23:22 18年会员 UID 96746 性别 男 来自 重庆
状态 离线
同时去掉行前面的空格:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt) do (
echo %%i|findstr "^\$">nul&&echo.
for %%j in (%%i) do set str=!str! %%j
echo !str:~1!&set str=
)
pause>nul
符号在findstr里用作普通符号的话要用 \ 转义才行,26和zq兄忽视了,我也是测试前面的代码后发现的。
[
Last edited by WANKOILZ on 2008-5-29 at 10:27 PM ]
第 21 楼
发表于 2008-05-29 22:23 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
19 楼代码可以去掉行前面的空格啊。。。。。
echo %%i|findstr "^\[.*\]$">nul 此种方法效率很低啊。
致精致简!
第 22 楼
发表于 2008-05-29 22:25 · 中国 上海 电信
中级用户
★★
积分 206 发帖 93 注册 2007-08-16 17:19 18年会员 UID 95263 性别 男
状态 离线
Originally posted by WANKOILZ at 2008-5-29 10:16 PM:
同时去掉行前面的空格:@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (1.txt) do (
echo %%i|findstr "^\$">nul&&echo.
fo ...
这个 测试 。。。
cc dd 会把cc 一起给删掉
第 23 楼
发表于 2008-05-29 22:29 · 中国 重庆 电信
初级用户
★★
积分 198 发帖 89 注册 2007-09-06 23:22 18年会员 UID 96746 性别 男 来自 重庆
状态 离线
回楼上:已经改进,但是不如26933062的好用,tokens=*是保证去掉行前的空格,并且后面的数据不变,应该是最好的方法了。
至于findstr "^\[.*\]$">nul 这种格式我也是第一次用,但是"^[.*]$"这种格式不行呢。
第 24 楼
发表于 2008-05-29 22:30 · 中国 四川 成都 电信
中级用户
★★
积分 297 发帖 135 注册 2006-10-21 12:00 19年会员 UID 67627 性别 男
状态 离线
忘记了“”在findstr中是特殊字符
tokens=*去掉行首空格,小楼总能别出心裁,果然经济实惠!
[ Last edited by zqz0012005 on 2008-5-29 at 10:32 PM ]
第 25 楼
发表于 2008-05-29 22:35 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
完全匹配 的方法
@echo off
for /f "delims=:" %%a in ('findstr /n ".*\" a.txt') do set .%%a=a
for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do (
if defined .%%a echo.
for /f "tokens=*" %%i in ("%%b") do echo.%%i
)
pause
致精致简!
第 26 楼
发表于 2008-05-29 22:45 · 中国 重庆 电信
初级用户
★★
积分 198 发帖 89 注册 2007-09-06 23:22 18年会员 UID 96746 性别 男 来自 重庆
状态 离线
楼上方法真独特。
但是我对 .*\[..*\] 不解:
1、为什么后面不加 .* 如:.*\[..*\].*
2、..* 这里的两点是什么意思呢。
劳驾楼上讲解下。
第 27 楼
发表于 2008-05-29 22:51 · 中国 上海 电信
中级用户
★★
积分 206 发帖 93 注册 2007-08-16 17:19 18年会员 UID 95263 性别 男
状态 离线
还有个问题。。。
能不能删除 ; 打头的行 就是注释 而不删除字符中间夹着的 ;
; asdasdasd
asd;asd
; qweqewqwe
---------------------------
asd;asd
第 28 楼
发表于 2008-05-29 22:52 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
*代表重复前面字符的0或n次
.代表至少一个字符。
如果是".*\[.*\]" 这样的话,那么也匹配 [] 这样的结果了。即:[]中间没有内容也匹配了。
致精致简!
第 29 楼
发表于 2008-05-29 22:57 · 中国 重庆 电信
初级用户
★★
积分 198 发帖 89 注册 2007-09-06 23:22 18年会员 UID 96746 性别 男 来自 重庆
状态 离线
*代表重复前面字符的0或n次
.代表至少一个字符。
如果是".*\" 这样的话,那么也匹配 这样的结果了。即:中间没有内容也匹配了。 说的很清楚,感谢了。
还有,再劳驾:为什么不在后面再加个 .* 形如:".*\.*" ,这样和不加有什么区别?
回27楼:25楼的代码符合你的要求
[
Last edited by WANKOILZ on 2008-5-29 at 10:59 PM ]
第 30 楼
发表于 2008-05-29 23:01 · 中国 四川 成都 电信
中级用户
★★
积分 297 发帖 135 注册 2006-10-21 12:00 19年会员 UID 67627 性别 男
状态 离线
如果后面再加个 .*,则像[reg]add这样不是以]结尾的行也会匹配,而这样的行不是楼主想的要吧
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正