Board logo

标题: 如何删除批处理文件每行开头的所有空格? [打印本页]

作者: JasonMing     时间: 2007-10-14 18:48    标题: 如何删除批处理文件每行开头的所有空格?

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

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

@echo off
for /f "tokens=*" %%a in (test.txt) do echo %%a
pause
这样???
作者: jmz573515     时间: 2007-10-14 20:09
vbs函数——ltrim来的更容易些...
作者: JasonMing     时间: 2007-10-14 21:36


  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           ------------------------------
结果运行的时候竖线“|”就会当作管道,结果就出错了···
作者: lxmxn     时间: 2007-10-14 21:53
请把问题说清楚点,不是很懂哦

我测试没有什么问题。
作者: JasonMing     时间: 2007-10-14 22:17
就是原文件里面的这段文字:
echo           ------------------------------
echo           ^|                           ^|
echo           ^|      无效程序         ^|
echo           ------------------------------
经过去除空格的处理之后出来就变成这个样子:
echo           ------------------------------
echo           ^|                         ^|
echo           |      无效程序         |
echo           ------------------------------

有中文才会这样,在第二行的echo中原来是怎样输出还是一样,在第三行中原来的 ^| 输出后就变成 | 了,这样一来我执行经过去除空格的程序就会出错···
作者: lxmxn     时间: 2007-10-14 23:54


  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           ------------------------------
请按任意键继续. . .

#


作者: JasonMing     时间: 2007-10-15 22:08
哈哈···测试过也的确没问题···用的还是同一条命令···怎么那天就这个样子···
汗--||
可能是机子问题吧···
顺便贴一个自己弄的精简批处理文件的小程序,只有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%"