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

[文本处理] [已解决]批处理怎样搜索文本文件并自动删除空行空格?

本人经常从网上粘贴文章,发现有空行或空格,手工删除太麻烦,于是想到用批处理解决

从网上搜集改写为如下代码后,测试发现DOS窗口显示dir 。。。。/s。。。。生成的文件名为***.txt.txt(***为搜到的文件名),多了一个.txt

start %%a.txt这一条提示找不到某某文件

请朋友们帮忙完善,谢谢!

(如果能写成***.doc,可以用WINWORD直接编辑就更好了)
  1. @echo off
  2. title 去除空行
  3. @for %%a in (dir /s *.txt) do (
  4. for /f "delims=" %%i in (%%a) do >>%%a.txt echo %%i
  5. )
  6. start %%a.txt
  7. pause
复制代码

[ 本帖最后由 temp 于 2010-11-16 20:51 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

原帖由 gshccr 于 2010-11-15 21:32 发表
是这样吗@echo off
for /f "delims=" %%i in ('dir/b/s/a-d "*.txt"') do (
  findstr /r /c:"[^ ]" "%%i">%%~dpi__%%~nxi)
pause


谢谢!

可以用了~~

TOP

是这样吗
  1. @echo off
  2. for /f "delims=" %%i in ('dir/b/s/a-d "*.txt"') do (
  3.   findstr /r /c:"[^ ]" "%%i">%%~dpi__%%~nxi)
  4. pause
复制代码
1

评分人数

TOP

原帖由 Batcher 于 2010-11-14 22:37 发表
建议先看看基础教程

批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html


兄弟!我琢磨很久才模仿着写出来的,让我自己弄精通是不好办了,因为我没学过微机课(俺上学时还不知道什么是电脑,也没听说过),希望你直接帮忙完善一下吧!谢谢!

TOP

回复 15楼 的帖子

兄弟!你写的不如我在12楼写的实用,可以搜索当前文件夹下的所有.TXT文件,生成的和原文件名相同,是中文。

建议帮我完善12楼的代码,咱们共享

TOP

回复 12楼 的帖子

兄弟,我的a.txt是你要进行操作的文件.,c.txt是最后处理后的文件,b.txt是过程中的临时文件,我想你明白吧?我用可用啊!!!!!

TOP

回复 13楼 的帖子

建议先看看基础教程

批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我自己重改了一下,后面多余的.TXT去掉了,到死窗口还是有系统找不文件到的提示,如下图:
  1. @echo off
  2. title 去除空行
  3. md .\temp1
  4. @for %%a in (dir /s /b *.txt) do (
  5. for /f "delims=" %%i in (%%a) do >>.\temp1\%%a echo %%i
  6. )
  7. pause
复制代码

TOP

原帖由 wc726842270 于 2010-11-13 16:38 发表
如果进行全盘查找的话,可能存在多个同名文件,另外效率也是个问题,个人建议,还是放在指定的文件夹里吧,以下仅是去除空格及空行的代码@echo off&setlocal enabledelayedexpansion
title 去除空行及空格
rem 请注意使 ...

谢谢!

怪了,还是不行

TOP

原帖由 brain123 于 2010-11-13 11:24 发表
只需第一行用table代替,后面的不用改。


谢谢!

还是不行,请把你写的原件打成包传上来吧

TOP

如果进行全盘查找的话,可能存在多个同名文件,另外效率也是个问题,个人建议,还是放在指定的文件夹里吧,以下仅是去除空格及空行的代码
  1. @echo off&setlocal enabledelayedexpansion
  2. title 去除空行及空格
  3. rem 请注意使用,有些空格或空行在文章里是有一定作用的
  4. findstr /i "." a.txt >>b.txt
  5. for /f "delims=" %%i in (b.txt) do (set a=%%i&echo !a: =! >>c.txt)
  6. echo 操作已完毕,请验证操作结果.
  7. del b.txt
  8. pause
复制代码

TOP

只需第一行用table代替,后面的不用改。

TOP

原帖由 lvsehuaxue 于 2010-11-11 13:55 发表
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /s /b .\*.txt') do (
    for /f "delims=" %%i in (%%a) do (
        if not defined n (cd.>%%a)
        set n=1
        set  ...

谢谢!

还是不行,显示:

系统找不到文件 C:\Documents。
请按任意键继续. . .

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /s /b .\*.txt') do (
  3.     for /f "delims=" %%i in (%%a) do (
  4.         if not defined n (cd.>%%a)
  5.         set n=1
  6.         set "a=%%i"
  7.         set "a=!a: =!"
  8.         if "!a!" neq "" (echo !a!>>%%a)
  9.    )
  10. set "n="
  11. )
  12. pause
复制代码

TOP

原帖由 brain123 于 2010-10-30 01:41 发表
set "str=!str:        = !"

注:这一串长的空格,复制到文本文件中,请改为"table键"再保存。


第2个CLS之后的内容可有可无,只是用来作修饰的。

我把
    set "str=!str:        = !"
    set "str=!str: = !"
    set "str=!str: =!"
第一行的空格用"table键"代替和三行全用"table键"代替,都没生成需要的文件

TOP

返回列表