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

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

本帖最后由 pcl_test 于 2016-9-8 11:54 编辑

我再一个文件夹下有很多TXT文件,但是每个文件的最后8个字符都是没用的想删掉,批处理该怎样实现这个功能呢?我刚刚接触批处理,基础很差,请高手们指点,谢谢!

请举个例子吧

TOP

2014/12/11        1296
2014/12/12        1305
2014/12/15        1280
2014/12/16        1270
数据截止数据截止

有很多文本文件,每一个文本里的数据又很多。只截取一个文本里的末尾的部分,想把“数据截止数据截止”删掉。

TOP

回复 3# 953427
  1. sed -i "/数据截止数据截止/d" *.txt
复制代码

TOP

试用一下,没有反应啊?求助是为什么呢?

TOP

@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文件。
如果不使用外部命令的话,可以一用。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

刷新了一下。。
>_< !
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

研究一下,谢谢啦!

TOP

回复 5# 953427


  他提供的代码需要一个外部命令,叫做sed.exe,你看他的签名档那里有的,下载后,放到system32文件夹下就好了。
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

本帖最后由 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

评分人数

TOP

  1. findstr /i /v "数据截止数据截止" *.txt
复制代码

TOP

返回列表