中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] [3] »
作者:
标题: 新的删除空格问题?? 上一主题 | 下一主题
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 31 楼』:  



  Quote:
还有,再劳驾:为什么不在后面再加个 .*  形如:".*\[..*\].*" ,这样和不加有什么区别?
...

.*\[..*\] 只要符号条件就已经匹配了,所以不用管[] 后面是否还有内容
[]后面加.*意思是[]后面有或无内容都匹配。
但若是".*\[..*\]..*" 就不一样了。表示[]后面至少还要有一个字符

回27楼:  eol=;

[ Last edited by 26933062 on 2008-5-29 at 11:06 PM ]



致精致简!
2008-5-29 23:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
WANKOILZ
初级用户





积分 198
发帖 89
注册 2007-9-6
来自 重庆
状态 离线
『第 32 楼』:  

哦,就是,.*\[..*\] 只要符号条件就已经匹配了,想通了,非常感谢。
for /f 不是默认就忽略 ; 开头的行么。

2008-5-29 23:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
amio
中级用户





积分 206
发帖 93
注册 2007-8-16
状态 离线
『第 33 楼』:  

这样输出  为什么 [ 的空行就不会空了呢  只会吧; 和全部的空格删除
@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>>temp.txt
)

2008-5-29 23:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
amio
中级用户





积分 206
发帖 93
注册 2007-8-16
状态 离线
『第 34 楼』:  



  Quote:
Originally posted by zqz0012005 at 2008-5-29 11:01 PM:
如果后面再加个 .*,则像[reg]add这样不是以]结尾的行也会匹配,而这样的行不是楼主想的要吧

侥幸吧   我修改的文件里  没有这些

2008-5-29 23:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
WANKOILZ
初级用户





积分 198
发帖 89
注册 2007-9-6
来自 重庆
状态 离线
『第 35 楼』:  

加不加 .* 都匹配[reg]add。因为.*可以是什么都没有,但..*就表示至少要有一个字符。

2008-5-29 23:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
amio
中级用户





积分 206
发帖 93
注册 2007-8-16
状态 离线
『第 36 楼』:  

希望 26933062  兄弟 在给一个完整的代码

[  ;   还有每行字符前面空格   以及除  [  空格外  删除其他全部空格 。。。。。。。。。。。。。。。。。。。。。。。。。。。

2008-5-29 23:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 37 楼』:  



  Quote:
Originally posted by amio at 2008-5-29 23:34:
希望 26933062  兄弟 在给一个完整的代码

[  ;   还有每行字符前面空格   以及除  [  空格外  删除其他全部空格 。。。。。。。。。。。。。。。。。。。。。。。。。。。

你的变化太多,解决了一个又来一个,
况且 你楼上的   简语    我看不懂。



致精致简!
2008-5-29 23:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
amio
中级用户





积分 206
发帖 93
注册 2007-8-16
状态 离线
『第 38 楼』:  



  Quote:
Originally posted by 26933062 at 2008-5-29 11:36 PM:

你的变化太多,解决了一个又来一个,
况且 你楼上的   简语    我看不懂。

@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
)

这个代码基本已经可以实现我说的了  如何输出  ?

2008-5-30 13:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
WANKOILZ
初级用户





积分 198
发帖 89
注册 2007-9-6
来自 重庆
状态 离线
『第 39 楼』:  

回楼上,晕!!
@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.>>a.txt
   for /f "tokens=*" %%i in ("%%b") do echo.%%i>>a.txt
)

在echo后面加个>>就行了........

2008-5-31 12:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
amio
中级用户





积分 206
发帖 93
注册 2007-8-16
状态 离线
『第 40 楼』:  



  Quote:
Originally posted by WANKOILZ at 2008-5-31 12:21 PM:
回楼上,晕!!
@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 (
  ...

我试过这样 有的功能不能都实现

2008-5-31 12:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
FQ
社区乞丐





积分 -61
发帖 37
注册 2008-4-19
状态 离线
『第 41 楼』:  

去掉左右空格:
3.txt
  I am robert     
       what are you doing ???            
oh,I teach batch   
测试代码:
@echo off&setlocal
echo.处理之前:
for /f "delims=" %%a in (3.txt) do echo.[%%a]
echo 处理之后:
for /f "tokens=*" %%b in (3.txt) do call:FQ "%%b"
goto:eof
:FQ
echo [%~n1]


2008-5-31 13:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: