标题: [代码合集] [已解决]批处理如何批量删除指定行和倒数行 [打印本页]
作者: xp3000 时间: 2014-3-5 17:05 标题: [已解决]批处理如何批量删除指定行和倒数行
本帖最后由 xp3000 于 2014-3-7 07:48 编辑
文件夹内有大量的TXT,如何批量删除指定行和倒数行?
在文件夹里面建立个批处理。
删除指定行要一个,只需要删除特定的行,
删除倒数行也要一个,需要删除多行,比如删除倒数1-5行。
作者: DAIC 时间: 2014-3-5 17:19
- @echo off
- REM 设置删除第几行
- set n=1
- sed -i "%n%d" *.txt
复制代码
作者: apang 时间: 2014-3-6 10:34
- @set @n=0;//&dir /b *.txt|cscript -nologo -e:jscript "%~0"&pause&exit/b
- a = 1; b = 5; //从倒数第1行到倒数第5行
- x = b-a+1; y = a-1; //x=删除行数,y=结尾剩余行数
- fso = new ActiveXObject("Scripting.FileSystemObject");
- re = new RegExp('^([\\s\\S]*?)(.*\\n){'+x+'}((.*\\n){'+y+'})$','');
- while (!WSH.StdIn.AtEndOfStream) {
- f = WSH.StdIn.ReadLine();
- txt = fso.OpenTextFile(f,1).ReadAll();
- if (txt.substr(txt.length-2) != '\r\n') txt += '\r\n'
- txt = txt.replace(re, '$1$3');
- fso.OpenTextFile(f,2).Write(txt);
- }
复制代码
作者: xp3000 时间: 2014-3-6 15:25
可以批量删除指定行的怎么弄?
需要运行后出现窗口,然后自己键盘输入指定行数字,回车后运行
作者: apang 时间: 2014-3-6 21:47
回复 4# xp3000
2楼代码你试过没有?
不想用sed的话,试试纯批:- @echo off
- set /p Input=输入指定行:
- for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
- set "n="
- (for /f "usebackq delims=" %%b in ("%%a") do (
- set /a "n+=1,1/(n-Input)" 2>nul && echo,%%b
- ))>$
- move $ "%%a"
- )
- pause
复制代码
作者: xp3000 时间: 2014-3-7 07:47
回复 5# apang
2楼那个没成功,这个可以
作者: DAIC 时间: 2014-3-7 08:42
回复 6# xp3000
你没有sed.exe的话,可以在这里下载:
http://code.google.com/p/gnu-on-windows/downloads/list
作者: xp3000 时间: 2014-3-7 16:13
回复 7# DAIC
谢谢,现在知道了
作者: 369888155 时间: 2017-7-24 10:48 标题: 求助
本帖最后由 pcl_test 于 2017-7-24 11:35 编辑
回复 3# apang
怎么添加指定文件路径 比如 D:\AXX\11.txt
作者: PS2.0 时间: 2017-7-24 11:09
把 *.txt 改成 D:\AXX\11.txt 可以吗?
另外这个代码是要实现什么功能?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |