Board logo

标题: 如何去除文本中所有空格和空行(已解) [打印本页]

作者: bat-zw     时间: 2008-3-31 23:32    标题: 如何去除文本中所有空格和空行(已解)
=============================================== 提示:********解决方案见三楼******** 有a.txt,内容如下:
  a d b d e jf ;k  jdpopfd fkdlk ;            


fksffjkla            jsklfjkla j                ksaljfkl jklsaj     
 
ff f fff  ffff ff ffff  fff                cccc cccccc ccc ccccccc

  ddddd dq dqd fdkfjdk fjdskljg k;         

 ======= ^^^^^****&&&&&&& ~!@#$%^&*(()  : =   







gjfdgkjk 'g          
要通过批处理生成b.txt,内容如下:
adbdejf;kjdpopfdfkdlk;            
fksffjklajsklfjklajksaljfkljklsaj     
fffffffffffffffffffcccccccccccccccccccc
ddddddqdqdfdkfjdkfjdskljgk;         
======= ^^^^^****&&&&&&&~!@#$%^&*(():=   
gjfdgkjk 'g
我写了段代码,仅能处理到如下程度,望高人支招啊。
@echo off
if exist b.txt del b.txt
for /f "delims=" %%i in ('findstr .* a.txt') do (
    set var=%%i
  setlocal enabledelayedexpansion
    if not "!var!"=="!var: =!" echo !var: =! >>b.txt 
    endlocal
)
start b.txt
  adbdejf;kjdpopfdfkdlk;              
fksffjklajsklfjklajksaljfkljklsaj      
ff f fff  ffff ff ffff  fffcccc cccccc ccc ccccccc  
  ddddddqdqdfdkfjdkfjdskljgk;           
=======^^^^^****&&&&&&&~!@#$%^&*(()  :=     
gjfdgkjk'g            
[ Last edited by zw19750516 on 2008-4-1 at 12:20 AM ]

作者: abcd     时间: 2008-3-31 23:48
======= ^^^^^****&&&&&&&~!@#$%^&*(():=    gjfdgkjk 'g 不需要去掉吗?

作者: 26933062     时间: 2008-3-31 23:53
:
@echo off
for /f "delims=" %%a in (a.txt) do (
   set var=%%a
   setlocal enabledelayedexpansion
   set var=!var: =!
   if not "!var!"=="" set var=!var: =!
   if not "!var!"=="" echo !var!
   endlocal
)
pause

作者: bat-zw     时间: 2008-3-31 23:55    标题: 看来都是汉字输入法的错!!!
如果是纯英名下生成的a.txt,我的代码应该是没问题的(测试了)。 但如果空格是汉字输入状态下生成的就挂了,是不是处理不了啊。

作者: bat-zw     时间: 2008-4-1 00:03
Originally posted by 26933062 at 2008-3-31 23:53: @echo off for /f "delims=" %%a in (a.txt) do ( set var=%%a setlocal enabledelayedexpansion set var=!var: =! if not "!var!"=="" set var=!var:  ...
是不是应该改为
@echo off
for /f "delims=" %%a in (a.txt) do (
   set var=%%a
   setlocal enabledelayedexpansion
   set var=!var: =!
   if not "!var!"=="" set var=!var: =!
   echo.!var! >>b.txt
   endlocal   
)
但即使这样处理的结果仍有个空行在如下:
adbdejf;kjdpopfdfkdlk; 
fksffjklajsklfjklajksaljfkljklsaj 
 
fffffffffffffffffffcccccccccccccccccccc 
ddddddqdqdfdkfjdkfjdskljgk; 
=======^^^^^****&&&&&&&~!@#$%^&*(():= 
gjfdgkjk'g 

作者: 26933062     时间: 2008-4-1 00:04
3楼代码可以处理全角空格啊!

作者: bat-zw     时间: 2008-4-1 00:18
Originally posted by 26933062 at 2008-4-1 00:04: 3楼代码可以处理全角空格啊!
测试成功,高人,自愧弗如啊!