中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何删除批处理文件每行开头的所有空格?
作者:
标题: 如何删除批处理文件每行开头的所有空格? 取消高亮 | 上一主题 | 下一主题
JasonMing
初级用户





积分 116
发帖 42
注册 2007-7-29
状态 离线
『楼 主』:  如何删除批处理文件每行开头的所有空格?

我看过这张帖子http://www.cn-dos.net/forum/viewthread.php?tid=25172

用里面方法可以处理普通文档,但用来处理批处理文件的话就会有问题,我想问下能不能通过findstr来做到(截取从每行的第一个不是空格的字符开始到最后的一个字符)???

2007-10-14 18:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


@echo off
for /f "tokens=*" %%a in (test.txt) do echo %%a
pause
这样???

2007-10-14 19:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 3 楼』:  

vbs函数——ltrim来的更容易些...

2007-10-14 20:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
JasonMing
初级用户





积分 116
发帖 42
注册 2007-7-29
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by lxmxn at 2007-10-14 07:51 PM:
@echo off
for /f "tokens=*" %%a in (test.txt) do echo %%a
pause
这样???

这个就在那个帖子里面有的···
不行···

遇到这样的语句输出之后就变样了
echo           ------------------------------
echo           ^|      无效程序         ^|
echo           ------------------------------
输出后
echo           ------------------------------
echo           |      无效程序         |
echo           ------------------------------
结果运行的时候竖线“|”就会当作管道,结果就出错了···

2007-10-14 21:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  

请把问题说清楚点,不是很懂哦

我测试没有什么问题。

2007-10-14 21:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
JasonMing
初级用户





积分 116
发帖 42
注册 2007-7-29
状态 离线
『第 6 楼』:  

就是原文件里面的这段文字:
echo           ------------------------------
echo           ^|                           ^|
echo           ^|      无效程序         ^|
echo           ------------------------------
经过去除空格的处理之后出来就变成这个样子:
echo           ------------------------------
echo           ^|                         ^|
echo           |      无效程序         |
echo           ------------------------------

有中文才会这样,在第二行的echo中原来是怎样输出还是一样,在第三行中原来的 ^| 输出后就变成 | 了,这样一来我执行经过去除空格的程序就会出错···

2007-10-14 22:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  



  Quote:
# type test.txt
echo           ------------------------------
echo           ^|                           ^|
echo           ^|      无效程序         ^|
echo           ------------------------------

# type Deal_test.bat
@echo off
for /f "tokens=*" %%a in (test.txt) do echo %%a
        pause

# Deal_test.bat
echo           ------------------------------
echo           ^|                           ^|
echo           ^|      无效程序         ^|
echo           ------------------------------
请按任意键继续. . .

#



2007-10-14 23:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
JasonMing
初级用户





积分 116
发帖 42
注册 2007-7-29
状态 离线
『第 8 楼』:  

哈哈···测试过也的确没问题···用的还是同一条命令···怎么那天就这个样子···
汗--||
可能是机子问题吧···
顺便贴一个自己弄的精简批处理文件的小程序,只有3行,不要笑我哦··

(功能:删除注解,删除空行和每行开头的空格)
@echo off
if %1.==. (set /p file=input:) else (set file=%1)
for /f "delims=" %%i in ("%file%") do (set file="%%~i"&set file0=%%~dpi&set file1=%%~nxi)
for /f "tokens=*" %%a in ('findstr /v "REM ::" %file%') do echo %%a>>"%file0%Deal_%file1%"


2007-10-15 22:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: