标题: [文本处理] [已解决]批处理怎样删除文本第一行和最后一行? [打印本页]
作者: newfish 时间: 2011-8-4 04:25 标题: [已解决]批处理怎样删除文本第一行和最后一行?
本帖最后由 newfish 于 2011-8-5 05:44 编辑
- @echo off&setlocal enabledelayedexpansion
- for %%i in (1.txt) do (
- set "f=%%i"
- for /f "usebackq delims=" %%j in ("!f!") do set/a n+=1
- set/a n-=2
- for /f "delims=" %%m in ('"type "!f!"|more +1& cd. 2^>!f!"') do set/a x+=1&if !x! leq !n! echo;%%m>>!f!
- set/a n=0,x=0
- )
-
- pause
复制代码
1.txt内容为
____________________________
1
2
3
4
5
_____________________________
运行代码后 为
____________________________
2
3
4
____________________________
问题1: 这段代码是如何实现删除第一行和最后一行的
问题2: 如果要删除 第N行和最后N 行 应该如何修改
作者: hfg1977 时间: 2011-8-4 07:22
你写的注释给谁看的呀?
不要把删减后完全错误的code发过来,浪费时间. 要贴就贴原始code.
作者: hfg1977 时间: 2011-8-4 08:56
帮你写了个,自己改 file_name pro_line back_line 三个参数- @echo off
- set "file_name=01.txt"
- set pro_line=1
- set back_line=1
-
- for /f %%a in ('type "%file_name%"^|find /c /v ""') do (echo %%a&set num_line=%%a)
- set/a last_line=num_line-back_line
-
- cd.>"%temp%\tmp.txt"
- for /f "skip=%pro_line% tokens=1* delims=:" %%a in ('findstr/n .* "%file_name%"') do (
- if %%a leq %last_line% (echo.%%b) else (goto:end)
- )>>"%temp%\tmp.txt"
-
- :end ==============================================================
- type "%temp%\tmp.txt">%file_name%
复制代码
作者: CrLf 时间: 2011-8-4 09:56
本帖最后由 CrLf 于 2011-8-4 17:42 编辑
本贴标题修改后基本符合版规,故将原警告贴删除
作者: newfish 时间: 2011-8-4 17:09
对不起各位大大来 .浪费各位大大时间....感谢版主木有ban小弟ID
作者: CrLf 时间: 2011-8-4 17:43
回复 5# newfish
除非是发布广告贴或者言行极为恶劣的用户才会被禁止访问...
作者: cjiabing 时间: 2011-8-4 18:12
随手写写- @echo off&setlocal enabledelayedexpansion
- for /f "skip=1 tokens=*" %%a in (1.txt) do (
- echo;!var!
- set var=%%a
- )
- pause
复制代码
]
skip=第一行
!var!=最后一行
作者: newfish 时间: 2011-8-4 18:56
我靠 ..如此简练有效的代码.而且超好懂 ....佩服!!!
作者: CUer 时间: 2011-8-4 19:18
- sed "1d;$d" a.txt | more >b.txt
复制代码
作者: newfish 时间: 2011-8-5 00:48
楼上这个 ...是 神马 意思 ....好奇怪...的代码!!
作者: CUer 时间: 2011-8-5 19:21
回复 11# else
如果你不知道从哪里下载,我很乐意告诉你。
作者: CUer 时间: 2011-8-5 19:29
本帖最后由 pcl_test 于 2016-7-10 22:37 编辑
回复 13# else
http://www.bathome.net/s/tool/index.html?key=sed
作者: pcl_test 时间: 2016-11-8 00:06
- //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
-
- WSH.Echo(WSH.StdIn.ReadAll().replace(/^.+\n|.+\n?$/g,''));
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |