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

[文本处理] 批处理如何删除多个txt文本的指定列?

本帖最后由 pcl_test 于 2016-11-4 17:00 编辑

上千个txt文件,如何批量删除特定列的内容。

....好几个问题咋都差不多...
你最好发个txt上来

TOP

回复 2# mms0536


    比如:处理前:  a  d    er
                           d  t    fl
                           k  j    gr
处理后(删除第一列):
                            d    er
                             t    fl
                             j    gr

TOP

回复 3# nihaoareyou
  1. for /f "tokens=2,3 delims= " %%a in (xxx.txt) do (
  2. echo %%a %%b >xxx_del.txt
  3. )
复制代码

TOP

回复 4# mms0536


    这个运行之后文本没变化啊。

TOP

回复 5# nihaoareyou


    xxx_del.txt
里面是处理后的

TOP

回复 6# mms0536


    文件太多,能直接在原文本上删除吗?

TOP

本帖最后由 mms0536 于 2015-1-11 16:41 编辑

回复 7# nihaoareyou


    不建议不保留备份...
这个把改好的txt放在了当前目录的del_dir里面
  1. @echo off
  2. mkdir del_dir
  3. for /r "txt所在目录" %%i in (*.txt) do (
  4. for /f "tokens=2,3 delims= " %%a in (%%i) do (
  5. call :del_str %%a %%b %%i
  6. )
  7. )
  8. echo 已完成
  9. exit
  10. :del_dir
  11. echo %1 %2 >.\del_dir\%~n3.txt
  12. goto :eof
复制代码

TOP

回复 8# mms0536


    运行后无结果,del_dir文件夹是空的。

TOP

回复 3# nihaoareyou
  1. sed -i "s/[^ ]\+ //" *.txt
复制代码

TOP

回复 9# nihaoareyou

晕,搞错了...
  1. @echo off &echo test
  2. echo mkdir del_dir
  3. for /r "C:\Users\MMS\Desktop\" %%i in (*.txt) do (
  4. for /f "usebackq tokens=2,3 delims= " %%a in ("%%i") do (
  5. call :del_str %%a %%b %%i
  6. )
  7. )
  8. echo 已完成
  9. exit
  10. :del_str
  11. echo %1 %2 >.\del_dir\%~n3.txt
  12. goto :eof
复制代码

TOP

回复 11# mms0536


    一般来说,call 命令会降低代码效率,直接把那个 echo 命令放到 for 循环内部就行了吧。

TOP

回复 12# DAIC


    额,我只是想获取文件原名...

TOP

回复 13# mms0536


不知道你说的获取文件原名和call有什么关系,直接在for循环内部echo不是也行嘛:
  1. echo %%a %%b >>.\del_dir\%%i
复制代码

TOP

返回列表