用批处理如何提取指定行的内容到新的文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用批处理如何提取指定行的内容到新的文本相关的知识,希望对你有一定的参考价值。
例如如下文件我要取第三行和第十行的所有字符到新的文件并显示如下176L0872619160S426=1
[HeaderBegin]
ABC23
176L0872619160S426
176L0840
5200
0
10-18-2016 13:30:43
91.76682857168
1
0
0
第3、4行指定日期时间起止范围,必须与统计源文中格式一致,但可省去较小时间单位数据(如代码所示例)表示取整月整日的情况,引号范围内不能有多余空格
第5行等号后引号前的空是个制表符,复制代码后注意用Tab键重新按一下
,当然要求源文中的列分隔也必须是制表符,且各统计文件中涉及获取数据部分各列不能有空数据,需要统计累加部分的数据必须是整数
各文件中如示例的N行后不能再有数据否则会出错
bat在txt文本指定行的头尾插入内容?
批量处理100个txt文本,再文本的第32行的头尾增加内容
比如修改前文本第32行:
这里是第32内容
修改后
111这里是第32内容222
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
<# :cls&echo off&cd /d "%~dp0"
rem 在一个txt文件的第几行/某一行/指定行的开头和末尾添加/插入内容
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
powershell -NoProfile -ExecutionPolicy bypass "[IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$file="xxx.txt";
$findline=32;
$prefix="111";
$suffix="222";
if(-not (test-path -liter $file))write-host ('"'+$file+'" 未找到');exit;;
$enc=[Text.Encoding]::GetEncoding('GB2312');
$text=[IO.File]::ReadAllLines($file, $enc);
for($i=0;$i -lt $text.count;$i++)
if(($i+1) -eq $findline)$text[$i]=$prefix+$text[$i]+$suffix;
[IO.File]::WriteAllLines($file, $text, $enc);追问
运行可以,能帮我改成直接修改当下文本并保存,不要重新创建新的resule文件夹吗
追答按运行后窗口中的提示联系我
参考技术A 这么复杂的操作还是用Powershell脚本吧。BAT处理起来挺费劲。追问没事量没那么大,可以话帮我写段bat代码
参考技术B BAT处理起来麻烦以上是关于用批处理如何提取指定行的内容到新的文本的主要内容,如果未能解决你的问题,请参考以下文章