批处理文本内容。 我想批量处理TXT文本的内容,功能是删除每个文本的其中一行的行首的前几个字或者行尾的

比如这个,我想去除第七行最后的3个字节38秒或者是第七行的行首开始的几个字节。就是哪一行的前几个字节或是哪一行的后几个字节... 比如这个,我想去除第七行最后的3个字节 38秒 或者是第七行的行首开始的几个字节。就是哪一行的前几个字节或是哪一行的后几个字节 展开
 我来答
littleant1111
2013-01-31 · TA获得超过340个赞
知道小有建树答主
回答量:361
采纳率:0%
帮助的人:268万
展开全部
=========================CUT==================================
@echo off&setlocal enabledelayedexpansion
title 删除某行前面或者后面几个字节
::先得出共有多少行
set /a num_max=0
for /f "delims=" %%a in (廉政英雄.txt) do (
set /a num_max+=1
)
:shuruhang
echo.输入要删除行:
set /p num_hang=
if !num_hang! LEQ !num_max! goto :yesorno
echo.输入有误!重新输入&ping -n 2 127.1>nul&goto :shuruhang
:yesorno
::用Del_=1或者2来识别删除前面字节或者后面字节
set/a Del_=0
echo.删除前面字节输入Y,后面字节输入N?
set/p input=
if "!input!"=="Y" set/a Del_=1&goto :function1
if "!input!"=="N" set/a Del_=2&goto :function1
echo.输入错误&ping -n 3 127.1>nul&goto :yesorno
::这个输入删除字节数
:function1
echo.请输入删除字节数:
set/p num_bit=
if "!num_bit!" gtr "0" goto :function2
echo.输入有误!&ping -n 2 127.1>nul&goto :function1
::对文本进行操作
:function2
set/a num_temp=0
for /f "delims=" %%a in (廉政英雄.txt) do (
set/a num_temp+=1
set str_temp=%%a
if "!num_temp!" equ "!num_hang!" (
if "!input!"=="Y" (
echo !str_temp:~%num_bit%!>>temp.txt) else (
echo !str_temp:~0,-%num_bit%!>>temp.txt)
) else (
echo !str_temp!>>temp.txt
)
)
echo.亲,处理完毕。&""temp.txt""
==========================CUT=================================
我测试成功!祝你好运。
如果对你有帮助,请采纳!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyykkkyyyy
2013-02-06 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3266万
展开全部
@echo off
::下一行指定行数 hn 和删除几字符 sn 如删行尾写成负数
set/a hn=7,sn=3
if %sn% lss 0 set "sn=,%sn%"
for %%i in (*.txt)do (
echo %%i
(for /f "tokens=1* delims=:" %%j in ('findstr/n .* "%%i"')do (
if %%j equ %hn% (
set "h=%%k"
if defined h (
setlocal enabledelayedexpansion
set "h=!h:~%sn%!"
echo/!h!
endlocal)else echo/
)else echo/%%k
))>temp.yky
move temp.yky "%%i"
set/a n+=1)
echo 共处理 %n% 个文件
pause
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gavineaglechou
2013-01-30 · TA获得超过157个赞
知道小有建树答主
回答量:133
采纳率:0%
帮助的人:130万
展开全部
下边代码有注释,你在把代码保存成bat文件的时候要把注释去掉,批处理文件要和 文本文件放在同一目录下

set /a n=7 第七行,这个数字你自己改

set /a m=0
cd.>temp.txt

setlocal enabledelayedexpansion

for /f "tokens=* delims=" %%a in ("廉政英雄.txt") do (
set /a m=!m!+1

if "!m!"== "!n!" (
set str=%%a

set str=!str:~0,-3! "-3"表示要去掉倒数3个字,你自己改
要去掉前边3个字 就用 set str=!str:~3!

echo !str!>>temp.txt

) else (
echo %%a>>temp.txt
)

)
endlocal

del 廉政英雄.txt /f/q
ren temp.txt 廉政英雄.txt
更多追问追答
追问
代码里怎么有廉政英雄.txt   我需要批量处理很多文件。就是一个文件夹下有很多像廉政英雄这样的TXT。现在这个代码可以吗?给我发个文件到邮箱里吧1035893804@qq.com
追答
用下边的批处理就可以了,放在你的 txt 文件所在文件夹下,你在把代码保存成bat文件的时候要把注释去掉

for /f "token* delims=" %%n in ('dir /b *.txt') do (
set /a n=7 第七行,这个数字你自己改
set /a m=0
cd.>temp.txt
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%a in ("%%n") do (
set /a m=!m!+1
if "!m!"== "!n!" (
set str=%%a
set str=!str:~0,-3! "-3"表示要去掉倒数3个字,你自己改
要去掉前边3个字 就用 set str=!str:~3!
echo !str!>>temp.txt
) else (
echo %%a>>temp.txt
)
)
endlocal
del "%%n" /f/q
ren temp.txt "%%n"
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yes___no
2013-01-30 · TA获得超过3153个赞
知道大有可为答主
回答量:1988
采纳率:100%
帮助的人:2028万
展开全部
用软件Replace Pioneer可以很容易完成,详细步骤:

单文件测试:
1. ctrl-o打开文本文件
2. ctrl-h打开replace窗口
* replace unit选Line
* unit number filter输入7表示第7行
* replace with pattern输入chars($match,1,-4)\n表示保留该行第1到倒数第4个字符(即删除最后3个字符)
3. 点击replace完成。

单文件测试成功后,可以进行多文件批量处理:
4. 在以上第3步,点击batch...按钮
5. 把多个待处理文件从windows 文件管理器拖拽到batch runner窗口中,然后点击batch replace即可。
追问
Replace Pioneer的注册码是多少
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式