找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 37028|回复: 10

[文本处理] 批处理如何删除txt文本末尾最后几个字符?

[复制链接]
发表于 2014-12-17 09:38:09 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-8 11:54 编辑

我再一个文件夹下有很多TXT文件,但是每个文件的最后8个字符都是没用的想删掉,批处理该怎样实现这个功能呢?我刚刚接触批处理,基础很差,请高手们指点,谢谢!
发表于 2014-12-17 12:29:52 | 显示全部楼层
请举个例子吧
 楼主| 发表于 2014-12-17 12:52:32 | 显示全部楼层
2014/12/11        1296
2014/12/12        1305
2014/12/15        1280
2014/12/16        1270
数据截止数据截止

有很多文本文件,每一个文本里的数据又很多。只截取一个文本里的末尾的部分,想把“数据截止数据截止”删掉。
发表于 2014-12-17 13:44:46 | 显示全部楼层
回复 3# 953427
  1. sed -i "/数据截止数据截止/d" *.txt
复制代码
 楼主| 发表于 2014-12-17 15:49:27 | 显示全部楼层
试用一下,没有反应啊?求助是为什么呢?
发表于 2014-12-17 16:13:35 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion
for %%a in (*txt) do (
    echo,%%~a >nul
    set α=%%~nxa
    call :a "%%~nxa"
)
pause&exit

:a
(for /f "usebackq delims= eol=数" %%i in ("%~1") do (
    echo,%%i
))>$a
move $a "!α!" >nul
goto :eof

根据你的情况应该可以使用忽略的。
是所有的txt文件。
如果不使用外部命令的话,可以一用。
发表于 2014-12-17 16:14:29 | 显示全部楼层
刷新了一下。。
>_< !
 楼主| 发表于 2014-12-17 16:15:06 | 显示全部楼层
研究一下,谢谢啦!
发表于 2014-12-17 16:34:56 | 显示全部楼层
回复 5# 953427


  他提供的代码需要一个外部命令,叫做sed.exe,你看他的签名档那里有的,下载后,放到system32文件夹下就好了。
发表于 2016-9-8 12:01:20 | 显示全部楼层
本帖最后由 pcl_test 于 2016-11-8 14:42 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. rem 删除文本最后一行
  3. for /f "tokens=1* delims=:" %%a in ('findstr /n .* "文本.txt"') do (
  4.     if defined line echo;!line!
  5.     set "line=%%b"
  6. )
  7. pause
复制代码
  1. //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
  2. WSH.Echo(WSH.StdIn.ReadAll().replace(/[^\r\n]{8}[\r\n]*$/,''));
复制代码

评分

参与人数 1技术 +1 收起 理由
949825667@qq.co + 1 两年前的喽!嘿嘿!

查看全部评分

发表于 2017-9-30 20:30:56 | 显示全部楼层

  1. findstr /i /v "数据截止数据截止" *.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 16:52 , Processed in 0.030550 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表