标题: [文本处理] 批处理如何删除txt文本末尾最后几个字符? [打印本页]
作者: 953427 时间: 2014-12-17 09:38 标题: 批处理如何删除txt文本末尾最后几个字符?
本帖最后由 pcl_test 于 2016-9-8 11:54 编辑
我再一个文件夹下有很多TXT文件,但是每个文件的最后8个字符都是没用的想删掉,批处理该怎样实现这个功能呢?我刚刚接触批处理,基础很差,请高手们指点,谢谢!
作者: DAIC 时间: 2014-12-17 12:29
请举个例子吧
作者: 953427 时间: 2014-12-17 12:52
2014/12/11 1296
2014/12/12 1305
2014/12/15 1280
2014/12/16 1270
数据截止数据截止
有很多文本文件,每一个文本里的数据又很多。只截取一个文本里的末尾的部分,想把“数据截止数据截止”删掉。
作者: DAIC 时间: 2014-12-17 13:44
回复 3# 953427 - sed -i "/数据截止数据截止/d" *.txt
复制代码
作者: 953427 时间: 2014-12-17 15:49
试用一下,没有反应啊?求助是为什么呢?
作者: 慕夜蓝化 时间: 2014-12-17 16:13
@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
刷新了一下。。
>_< !
作者: 953427 时间: 2014-12-17 16:15
研究一下,谢谢啦!
作者: 慕夜蓝化 时间: 2014-12-17 16:34
回复 5# 953427
他提供的代码需要一个外部命令,叫做sed.exe,你看他的签名档那里有的,下载后,放到system32文件夹下就好了。
作者: pcl_test 时间: 2016-9-8 12:01
本帖最后由 pcl_test 于 2016-11-8 14:42 编辑
- @echo off&setlocal enabledelayedexpansion
- rem 删除文本最后一行
- for /f "tokens=1* delims=:" %%a in ('findstr /n .* "文本.txt"') do (
- if defined line echo;!line!
- set "line=%%b"
- )
- pause
复制代码
- //&cls&cscript -nologo -e:jscript "%~f0"<"文本.txt"&pause&exit
- WSH.Echo(WSH.StdIn.ReadAll().replace(/[^\r\n]{8}[\r\n]*$/,''));
复制代码
作者: Alt32 时间: 2017-9-30 20:30
- findstr /i /v "数据截止数据截止" *.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |