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

[文件操作] 批处理怎样批量删除多个txt文本字符数少于指定数值的最后一行?

本帖最后由 pcl_test 于 2016-9-20 11:33 编辑

假设一个文件夹下有很多TXT文件,但是部分文件的最后一行很短,现在想将这部分删除,批处理该怎样实现下列功能呢?

1、遍历当前文件夹下所有TXT文件,判断每个TXT文件末尾是否存在空格或回车(可能有多个),如果有的话先将回车或空格删除。

2、判断每个TXT文件的最后一行是否超过80字符(包括空格符),如果少于80字符,就将最后一行删除,如果多于80字符,则不进行操作。

老兄这个代码不能用啊,生成了一大堆临时文件,而且文件本身没有任何改变


原帖由 sgaizxt001 于 2010-5-27 00:34 发表
@echo off
setlocal enabledelayedexpansion
for %%a in (*.txt) do call :lp "%%a"
pause
exit
:lp
for /f "usebackq delims=" %%b in (%1) do set /a n+=1 &set str=%%b
:lo
if not "!str:~%m%,1!"=="" ( ...

[ 本帖最后由 zxzl 于 2010-5-27 08:16 编辑 ]

TOP

原帖由 sgaizxt001 于 2010-5-27 09:10 发表
你先看看临时文件合不合你的要求。对应着去文件名看。
如果合要求的话就是del+ren就可以了的。因为我不知道你的文件构成格式是怎样。如果有的行与行之间没有空行,有的有空行的话,很难处理


临时文件的内容不对,最麻烦的是一个TXT文件竟然会生成近30个临时文件…

[ 本帖最后由 zxzl 于 2010-5-27 09:40 编辑 ]

TOP

这个代码试了一下,基本没什么改变,末尾的空行和回车还在,少于80字符的最后一行也在,只是最后一行和倒数第二行之间的空行没了:(

TOP

于 2010-5-27 18:56 编辑

我就是用最新的代码测试的

TOP

返回列表