![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 23:19 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 新的删除空格问题?? |
| 可打印版本 2,713 / 40 |
| 第16楼 zqz0012005 | 发表于 2008-05-29 21:54 |
| 中级用户 发帖 135 积分 297 | |
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 ] |
|
| 第17楼 WANKOILZ | 发表于 2008-05-29 21:58 |
| 初级用户 发帖 89 积分 198 来自 重庆 | |
|
呵呵,我只是想针对楼主那种简单形式的文本,就没用完善的方法,管道+findstr会降低效率。当然要考虑周全也只有用findstr了。
|
|
| 第18楼 amio | 发表于 2008-05-29 22:02 |
| 中级用户 发帖 93 积分 206 | |
|
我那不是简单的文本 就是改inf 文件
先帮我看看 15楼的问题吧 |
|
| 第19楼 26933062 | 发表于 2008-05-29 22:07 |
| 银牌会员 发帖 879 积分 2,268 | |
|
判断有
@echo off&setlocal enabledelayedexpansion for /f "tokens=*" %%a in (a.txt) do ( set "str=%%a" set "str=!str: |
|
| 第20楼 WANKOILZ | 发表于 2008-05-29 22:16 |
| 初级用户 发帖 89 积分 198 来自 重庆 | |
|
同时去掉行前面的空格:
符号在findstr里用作普通符号的话要用 \ 转义才行,26和zq兄忽视了,我也是测试前面的代码后发现的。 [ Last edited by WANKOILZ on 2008-5-29 at 10:27 PM ] |
|
| 第21楼 26933062 | 发表于 2008-05-29 22:23 |
| 银牌会员 发帖 879 积分 2,268 | |
|
19 楼代码可以去掉行前面的空格啊。。。。。
echo %%i|findstr "^\[.*\]$">nul 此种方法效率很低啊。 |
|
| 第22楼 amio | 发表于 2008-05-29 22:25 |
| 中级用户 发帖 93 积分 206 | |
Originally posted by WANKOILZ at 2008-5-29 10:16 PM: |
|
| 第23楼 WANKOILZ | 发表于 2008-05-29 22:29 |
| 初级用户 发帖 89 积分 198 来自 重庆 | |
|
回楼上:已经改进,但是不如26933062的好用,tokens=*是保证去掉行前的空格,并且后面的数据不变,应该是最好的方法了。
至于findstr "^\[.*\]$">nul 这种格式我也是第一次用,但是"^[.*]$"这种格式不行呢。 |
|
| 第24楼 zqz0012005 | 发表于 2008-05-29 22:30 |
| 中级用户 发帖 135 积分 297 | |
|
忘记了“”在findstr中是特殊字符
tokens=*去掉行首空格,小楼总能别出心裁,果然经济实惠! [ Last edited by zqz0012005 on 2008-5-29 at 10:32 PM ] |
|
| 第25楼 26933062 | 发表于 2008-05-29 22:35 |
| 银牌会员 发帖 879 积分 2,268 | |
|
完全匹配 的方法
|
|
| 第26楼 WANKOILZ | 发表于 2008-05-29 22:45 |
| 初级用户 发帖 89 积分 198 来自 重庆 | |
|
楼上方法真独特。
但是我对 .*\[..*\] 不解: 1、为什么后面不加 .* 如:.*\[..*\].* 2、..* 这里的两点是什么意思呢。 劳驾楼上讲解下。 |
|
| 第27楼 amio | 发表于 2008-05-29 22:51 |
| 中级用户 发帖 93 积分 206 | |
|
还有个问题。。。
能不能删除 ; 打头的行 就是注释 而不删除字符中间夹着的 ; ; asdasdasd asd;asd ; qweqewqwe --------------------------- asd;asd |
|
| 第28楼 26933062 | 发表于 2008-05-29 22:52 |
| 银牌会员 发帖 879 积分 2,268 | |
|
*代表重复前面字符的0或n次
.代表至少一个字符。 如果是".*\[.*\]" 这样的话,那么也匹配 [] 这样的结果了。即:[]中间没有内容也匹配了。 |
|
| 第29楼 WANKOILZ | 发表于 2008-05-29 22:57 |
| 初级用户 发帖 89 积分 198 来自 重庆 | |
*代表重复前面字符的0或n次说的很清楚,感谢了。 还有,再劳驾:为什么不在后面再加个 .* 形如:".*\.*" ,这样和不加有什么区别? 回27楼:25楼的代码符合你的要求 [ Last edited by WANKOILZ on 2008-5-29 at 10:59 PM ] |
|
| 第30楼 zqz0012005 | 发表于 2008-05-29 23:01 |
| 中级用户 发帖 135 积分 297 | |
|
如果后面再加个 .*,则像[reg]add这样不是以]结尾的行也会匹配,而这样的行不是楼主想的要吧
|
|
| 上一页 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |