标题: 如何删除批处理文件每行开头的所有空格?
[打印本页]
作者: 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%"