[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样删除文本第一行和最后一行?

本帖最后由 newfish 于 2011-8-5 05:44 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (1.txt) do (
  3. set "f=%%i"
  4. for /f "usebackq delims=" %%j in ("!f!") do set/a n+=1
  5. set/a n-=2
  6. for /f "delims=" %%m in ('"type "!f!"|more +1& cd. 2^>!f!"') do set/a x+=1&if !x! leq !n! echo;%%m>>!f!
  7. set/a n=0,x=0
  8. )
  9. pause
复制代码

1.txt内容为
____________________________
1
2
3
4
5
_____________________________
运行代码后 为
____________________________
2
3
4
____________________________
问题1: 这段代码是如何实现删除第一行和最后一行的
问题2: 如果要删除 第N行和最后N 行 应该如何修改
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

你写的注释给谁看的呀?
不要把删减后完全错误的code发过来,浪费时间. 要贴就贴原始code.
“阿姐走了。。。可是。。。我。。。我愿意。”

TOP

帮你写了个,自己改 file_name pro_line back_line 三个参数
  1. @echo off
  2. set "file_name=01.txt"
  3. set pro_line=1
  4. set back_line=1
  5. for /f %%a in ('type "%file_name%"^|find /c /v ""') do (echo %%a&set num_line=%%a)
  6. set/a last_line=num_line-back_line
  7. cd.>"%temp%\tmp.txt"
  8. for /f "skip=%pro_line% tokens=1* delims=:" %%a in ('findstr/n .* "%file_name%"') do (
  9. if %%a leq %last_line% (echo.%%b) else (goto:end)
  10. )>>"%temp%\tmp.txt"
  11. :end ==============================================================
  12. type "%temp%\tmp.txt">%file_name%
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1
“阿姐走了。。。可是。。。我。。。我愿意。”

TOP

本帖最后由 CrLf 于 2011-8-4 17:42 编辑

本贴标题修改后基本符合版规,故将原警告贴删除

TOP

对不起各位大大来 .浪费各位大大时间....感谢版主木有ban小弟ID

TOP

回复 5# newfish


    除非是发布广告贴或者言行极为恶劣的用户才会被禁止访问...

TOP

随手写写
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "skip=1 tokens=*"  %%a in (1.txt) do (
  3.       echo;!var!
  4.       set var=%%a
  5. )
  6. pause
复制代码
]
skip=第一行
!var!=最后一行
1

评分人数

寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

我靠 ..如此简练有效的代码.而且超好懂 ....佩服!!!

TOP

  1. sed "1d;$d" a.txt | more >b.txt
复制代码
1

评分人数

    • CrLf: 乐于助人PB + 2

TOP

楼上这个 ...是 神马 意思 ....好奇怪...的代码!!

TOP

回复 11# else


如果你不知道从哪里下载,我很乐意告诉你。

TOP

本帖最后由 pcl_test 于 2016-7-10 22:37 编辑

回复 13# else


http://www.bathome.net/s/tool/index.html?key=sed
1

评分人数

    • else: 感谢提供链接!技术 + 1

TOP

  1. //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
  2. WSH.Echo(WSH.StdIn.ReadAll().replace(/^.+\n|.+\n?$/g,''));
复制代码

TOP

返回列表