中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-06 13:53
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 新的删除空格问题?? 查看 2,510 回复 40
31 发表于 2008-05-29 23:04 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线

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

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

回27楼: eol=;

[ Last edited by 26933062 on 2008-5-29 at 11:06 PM ]
致精致简!
32 发表于 2008-05-29 23:18 ·  中国 重庆 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
哦,就是,.*\[..*\] 只要符号条件就已经匹配了,想通了,非常感谢。
for /f 不是默认就忽略 ; 开头的行么。
33 发表于 2008-05-29 23:21 ·  中国 上海 电信
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
这样输出 为什么 [ 的空行就不会空了呢 只会吧; 和全部的空格删除
@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
)
34 发表于 2008-05-29 23:24 ·  中国 上海 电信
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
Originally posted by zqz0012005 at 2008-5-29 11:01 PM:
如果后面再加个 .*,则像add这样不是以]结尾的行也会匹配,而这样的行不是楼主想的要吧



侥幸吧 我修改的文件里 没有这些
35 发表于 2008-05-29 23:28 ·  中国 重庆 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
加不加 .* 都匹配[reg]add。因为.*可以是什么都没有,但..*就表示至少要有一个字符。
36 发表于 2008-05-29 23:34 ·  中国 上海 电信
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
希望 26933062 兄弟 在给一个完整的代码

[ ; 还有每行字符前面空格 以及除 [ 空格外 删除其他全部空格 。。。。。。。。。。。。。。。。。。。。。。。。。。。
37 发表于 2008-05-29 23:36 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
Originally posted by amio at 2008-5-29 23:34:
希望 26933062 兄弟 在给一个完整的代码


你的变化太多,解决了一个又来一个,
况且 你楼上的 简语 我看不懂。
致精致简!
38 发表于 2008-05-30 13:51 ·  中国 辽宁 本溪 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
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
)

这个代码基本已经可以实现我说的了 如何输出 ?
39 发表于 2008-05-31 12:21 ·  中国 重庆 合川区 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
回楼上,晕!!
@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后面加个>>就行了........
40 发表于 2008-05-31 12:52 ·  中国 辽宁 营口 中移铁通
中级用户
★★
积分 206
发帖 93
注册 2007-08-16 17:19
18年会员
UID 95263
性别 男
状态 离线
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 (
...



我试过这样 有的功能不能都实现
41 发表于 2008-05-31 13:29 ·  中国 北京 联通
社区乞丐
积分 -61
发帖 37
注册 2008-04-19 17:10
18年会员
UID 116329
性别 男
状态 离线
去掉左右空格:
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.
echo 处理之后:
for /f "tokens=*" %%b in (3.txt) do call:FQ "%%b"
goto:eof
:FQ
echo
论坛跳转: