Board logo

标题: [文本处理] 批处理怎样批量删除TXT文本中一半内容? [打印本页]

作者: mgcxq    时间: 2010-6-19 19:31     标题: 批处理怎样批量删除TXT文本中一半内容?

批量删除多个不同名称的TXT文本中后半内容?的批处理!望高手帮个忙!

1,批量?要多多个文本都做同样操作?
50个!TXT文本名称 不 定!

2,一半的标准是什么?行数的一半?字数的一半?还是字节数的一半?
是 字节数的一半!

3,当被分割数为奇数时要加1还是要减1处理?
加1 就可以了!

4,一半?要删除的是前半部分,还是后半部分?
后半部分!

5,单个的文本内容是否很多?
文件内容 一般在100KB-2MB之间

================

谢谢你 !

[ 本帖最后由 mgcxq 于 2010-6-20 13:31 编辑 ]
作者: s700800900    时间: 2010-6-19 19:45

@echo off
setlocal enabledelayedexpansion



for /f "delims=" %%b in ('dir /b "*.txt"') do (
set n=0
for /f "delims=" %%a in (%%b) do (
set /a n=n+1
)
set /a n=%n%/2
set i=0

for /f "delims=" %%a in (%%b) do (
echo %%a>>%%~nb_new.txt
set /a i=i+1
if !i! equ !n! exit
)
)
pause
和你的txt文档保存在一起。

[ 本帖最后由 s700800900 于 2010-6-19 19:55 编辑 ]
作者: s700800900    时间: 2010-6-19 19:46

把前一半的内容提取出来。。。先计算整个文本有多少行,然后提取出一半。大概是这个原理
作者: mgcxq    时间: 2010-6-19 19:50

谢谢你! 非常感谢
但是我的TXT文本没有  1.txt!
作者: s700800900    时间: 2010-6-19 19:51

自已修改呗?或者你说的是一群TXT文档?
作者: hanyeguxing    时间: 2010-6-19 19:52

1,批量?要多多个文本都做同样操作?
2,一半的标准是什么?行数的一半?字数的一半?还是字节数的一半?
3,当被分割数为奇数时要加1还是要减1处理?
4,一半?要删除的是前半部分,还是后半部分?
5,单个的文本内容是否很多?

[ 本帖最后由 hanyeguxing 于 2010-6-19 19:54 编辑 ]
作者: mgcxq    时间: 2010-6-19 19:58     标题: 回复 6楼 的帖子

1,批量?要多多个文本都做同样操作?
50个!TXT文本名称 不 定!

2,一半的标准是什么?行数的一半?字数的一半?还是字节数的一半?
是 字节数的一半!

3,当被分割数为奇数时要加1还是要减1处理?
加1 就可以了!

4,一半?要删除的是前半部分,还是后半部分?
后半部分!

5,单个的文本内容是否很多?
文件内容 一般在100KB-2MB之间

================

谢谢你 !

[ 本帖最后由 mgcxq 于 2010-6-19 20:04 编辑 ]
作者: mgcxq    时间: 2010-6-19 19:59     标题: 回复 5楼 的帖子

一群 随机名称的TXT文本!
作者: mgcxq    时间: 2010-6-19 20:34     标题: 回复 2楼 的帖子

找不到操作数,怎么办啊!
作者: mgcxq    时间: 2010-6-19 23:01     标题: 批量删除多个不同名称的TXT文本中后半内容?

的批处理!望高手帮个忙!

1,批量?要多多个文本都做同样操作?
50个!TXT文本名称 不 定!

2,一半的标准是什么?行数的一半?字数的一半?还是字节数的一半?
是 字节数的一半!

3,当被分割数为奇数时要加1还是要减1处理?
加1 就可以了!

4,一半?要删除的是前半部分,还是后半部分?
后半部分!

5,单个的文本内容是否很多?
文件内容 一般在100KB-2MB之间

================

谢谢你 !
作者: sgaizxt001    时间: 2010-6-19 23:41

有点难度。假如某个文本中的内容是:1啊
3个字节,按楼主要求取2个字节时,该如何处理呢?输出“1 ”或者1或者1啊?

split.exe可以分割,但是我不知道他的参数是怎么样的
作者: Seter    时间: 2010-6-20 08:42

文本内容是:BS吖LZ
6个字节,中间的吖怎么分?
作者: zqz0012005    时间: 2010-6-20 13:25     标题: 回复 10楼 的帖子

请楼主把描述放在顶楼!
作者: ZJHJ    时间: 2010-6-20 22:00

split -b 为字节

split -l 为行

我还没有发现用批处理解决按字节分割并保持原来排列格式的。

我写过用debug只能提取前半部分小于64K的。(因为受64K限制,没有什么实际意义)

[ 本帖最后由 ZJHJ 于 2010-6-20 22:11 编辑 ]
作者: ZJHJ    时间: 2010-6-22 08:09

要方便解决楼主的问题,只有用三方了。如果用批处理,也不是不能解决,有点很麻烦。首先要保持原有格式,批处理要读取%%~zi是以行读取的,不可能得到非常准确的字节。除非先将原文件用批分割成接近要求的字节,差的部分不大于64K,用debug获取差的部分。再进行合并。不过是要花费时间的。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2