中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 19:25
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]如何编写P用来删除文本的最后3行
可打印版本  778 / 6
第1楼 hbby 发表于 2007-09-15 10:15
中级用户 发帖 99 积分 220
[已结]如何编写P用来删除文本的最后3行
请高手指导如何编写P处理来删除文本的最后3行,而且文本中包含特殊字符,希望用系统自带的命令!谢谢!

[ Last edited by hbby on 2007-9-15 at 03:03 PM ]
第2楼 scriptor 发表于 2007-09-15 11:10
银牌会员 发帖 555 积分 1,187

自己体会吧!
第3楼 hbby 发表于 2007-09-15 11:59
中级用户 发帖 99 积分 220
感谢楼上的朋友,但是文件中含有空行的话就删除不到最后几行了,能再看看吗?谢谢
第4楼 terse 发表于 2007-09-15 14:37
银牌会员 发帖 946 积分 2,404
试一下
@echo off
cd.>test2.txt
for /f "delims=:" %%i in ('findstr /n . test.txt') do set n=%%i
set /a nm=%n% -2>nul
for /f "delims=" %%i in ('findstr /n .* test.txt') do (
set /a mn=%%i 2>nul
set "m=%%i"
setlocal enabledelayedexpansion
set "m=!m:*:=!"
if !nm! EQU !mn! goto end
echo.!m!>>test2.txt
endlocal
)
:end
pause

[ Last edited by terse on 2007-9-15 at 02:46 PM ]
第5楼 scriptor 发表于 2007-09-15 14:43
银牌会员 发帖 555 积分 1,187
Originally posted by hbby at 2007-9-15 11:59:
感谢楼上的朋友,但是文件中含有空行的话就删除不到最后几行了,能再看看吗?谢谢



是的
那个写得不完善

你用楼上的吧!(4楼)
那个快1
第6楼 hbby 发表于 2007-09-15 15:03
中级用户 发帖 99 积分 220
都是高手,谢谢,这个可以了!
第7楼 wudixin96 发表于 2007-09-15 15:57
银牌会员 发帖 931 积分 1,928
sed -e :a -e "$d;N;2,3ba" -e "P;D" 1.txt>>2.txt
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023