[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 如何用命令处理某行后面或前面的空格!

例如有个文本a.txt里有内容!
hello[ ]
i
love[ ]
bbs[ ][ ]
[ ]bathome[ ]
.cn
-------------------------
注意!因为空格不好表现我就用[]代表空格!就一个空格!
-------------------------
如何把他搞成下面几种情况!
1:只把hello后的去掉其他不用
2:只把第3行love后的去掉其他不用
3:只去掉地4行bbs后的2个
4:只去掉第5行后面的
5:只去掉第5行前面的

6:全部去掉空格
=======================
好像情况完了样!如果有多的情况谢谢帮忙说出来下!

[ 本帖最后由 jellyhk 于 2008-11-15 00:37 编辑 ]
本人已死!不用联系!~
要联系下来联系!~~

我知道
%os:~1,1%
是说变量的第一个字符开始数后面的第一个字符
怎么没见过
%a: =%

TOP

请问楼上如果要处理的这一行内容如下,该怎么办:
“此行中 中间 也有空 格, 有 英文空格 也有 中文空格 后面还有空格。     ”
***共同提高***

TOP

5楼说的对啊!
你的代码是把文本中的全部都替换????

TOP

  请把这个文本中所有的数据格式都说一下才好写代码。最起码,应该说明:行首、行中是否还有空格?标题只能描述问题的大概,解决问题需要交代细节,永远都不要“如题”!此乃提问之大忌!
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

回复 8楼 的帖子

你的测试结果如何呢?符合楼主要求么?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

这是一个最保险的方案,但效率上会有点问题:
  1. @echo off
  2. for /f "delims=" %%i in (a.txt) do (
  3.       set "str=%%i"&call :lp
  4.       call,echo 首%%str%%尾
  5. )
  6. pause>nul&goto :eof
  7. :lp
  8. if "%str:~-1%" equ " " set /a n+=1
  9. if "%str:~-1%" equ " " set /a n+=1
  10. if "%n%" gtr "0" (
  11.    set "str=%str:~,-1%"
  12.    set /a n=0&goto lp
  13. )
  14. set /a n=0
复制代码
***共同提高***

TOP

10楼!

10楼的代码运行结果:
只是把内容的前后加了
首  尾

没有去掉空格!不知道怎么会事!


我重写了主题内容!
请大家看看  !
帮忙谢谢代码!

[ 本帖最后由 jellyhk 于 2008-11-15 00:34 编辑 ]
本人已死!不用联系!~
要联系下来联系!~~

TOP

为何不一次说清楚?、、、
  1. @echo off & setlocal enabledelayedexpansion
  2. call :recur a.txt
  3. pause>nul & exit /b
  4. :recur
  5. set "string="
  6. For /f "tokens=*" %%a in (%1) do (
  7.       set "str=%%~a"
  8.       call :reserve
  9.       If "%~1" equ "a.txt" (call :recur "!string!"
  10.          ) else (
  11.          echo !string!&set "string="
  12. ))
  13. Exit /b
  14. :reserve
  15. if defined str set "string=%str:~,1%%string%" &set "str=%str:~1%"&goto reserve
复制代码
心绪平和,眼藏静谧。

TOP

原帖由 jellyhk 于 2008-11-15 00:22 发表
10楼的代码运行结果:
只是把内容的前后加了
首  尾

没有去掉空格!不知道怎么会事!


我重写了主题内容!
请大家看看  !
帮忙谢谢代码!

请问楼主怎么能判断后面的空格被去掉了?用眼睛直接是看不出来的吧,所以我加了首尾两个字符。
同时请楼主以后发贴将问题一次性描述清楚,或另有问题就再发新贴求助。
***共同提高***

TOP

10 ;12楼2位的代码测试了边只是显示在cmd上的,如何加输出命令?
我在echo 后加 了 结果只输出了.cn
本人已死!不用联系!~
要联系下来联系!~~

TOP

你在echo 后加了什么?不可见的字符需要用“”括起来。
显示在CMD中,不是输出吗、、、如果还要把内容输出到文件中,那么你在顶楼说了这个要求吗、、、或者,没有想要的答案?自己看着改就是了,如果你不想停留在现在的程度的话。
心绪平和,眼藏静谧。

TOP

回复15楼!

不是不想自己改!
是改不了!
很多都不是很懂
1:                set "str=%%~a"
中的%%~a就是变量%%a吧
2:                 if defined str set "string=%str:~,1%%string%" &set "str=%str:~1%"&goto reserve
是什么意思!
3:       输出到是搞半天找对了!是在call :recur a.txt 后面加了个输出管道,对吗?
本人已死!不用联系!~
要联系下来联系!~~

TOP

返回列表