标题: [文本处理] 批处理如何删除多个txt文本的指定列? [打印本页]
作者: nihaoareyou 时间: 2015-1-11 13:00 标题: 批处理如何删除多个txt文本的指定列?
本帖最后由 pcl_test 于 2016-11-4 17:00 编辑
上千个txt文件,如何批量删除特定列的内容。
作者: mms0536 时间: 2015-1-11 13:42
....好几个问题咋都差不多...
你最好发个txt上来
作者: nihaoareyou 时间: 2015-1-11 13:54
回复 2# mms0536
比如:处理前: a d er
d t fl
k j gr
处理后(删除第一列):
d er
t fl
j gr
作者: mms0536 时间: 2015-1-11 14:02
回复 3# nihaoareyou - for /f "tokens=2,3 delims= " %%a in (xxx.txt) do (
- echo %%a %%b >xxx_del.txt
- )
复制代码
作者: nihaoareyou 时间: 2015-1-11 15:27
回复 4# mms0536
这个运行之后文本没变化啊。
作者: mms0536 时间: 2015-1-11 15:35
回复 5# nihaoareyou
xxx_del.txt
里面是处理后的
作者: nihaoareyou 时间: 2015-1-11 15:48
回复 6# mms0536
文件太多,能直接在原文本上删除吗?
作者: mms0536 时间: 2015-1-11 16:32
本帖最后由 mms0536 于 2015-1-11 16:41 编辑
回复 7# nihaoareyou
不建议不保留备份...
这个把改好的txt放在了当前目录的del_dir里面- @echo off
- mkdir del_dir
- for /r "txt所在目录" %%i in (*.txt) do (
- for /f "tokens=2,3 delims= " %%a in (%%i) do (
- call :del_str %%a %%b %%i
- )
- )
- echo 已完成
- exit
- :del_dir
- echo %1 %2 >.\del_dir\%~n3.txt
- goto :eof
复制代码
作者: nihaoareyou 时间: 2015-1-11 16:54
回复 8# mms0536
运行后无结果,del_dir文件夹是空的。
作者: DAIC 时间: 2015-1-11 17:35
回复 3# nihaoareyou - sed -i "s/[^ ]\+ //" *.txt
复制代码
作者: mms0536 时间: 2015-1-11 17:40
回复 9# nihaoareyou
晕,搞错了...- @echo off &echo test
- echo mkdir del_dir
- for /r "C:\Users\MMS\Desktop\" %%i in (*.txt) do (
- for /f "usebackq tokens=2,3 delims= " %%a in ("%%i") do (
- call :del_str %%a %%b %%i
- )
- )
- echo 已完成
- exit
- :del_str
- echo %1 %2 >.\del_dir\%~n3.txt
- goto :eof
复制代码
作者: DAIC 时间: 2015-1-11 17:58
回复 11# mms0536
一般来说,call 命令会降低代码效率,直接把那个 echo 命令放到 for 循环内部就行了吧。
作者: mms0536 时间: 2015-1-11 18:15
回复 12# DAIC
额,我只是想获取文件原名...
作者: DAIC 时间: 2015-1-11 19:56
回复 13# mms0536
不知道你说的获取文件原名和call有什么关系,直接在for循环内部echo不是也行嘛:- echo %%a %%b >>.\del_dir\%%i
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |