Board logo

标题: [文本处理] 批处理如何删除文件夹内所有txt文本中每一行开头的特定内容 [打印本页]

作者: 273067185    时间: 2016-11-22 21:47     标题: 批处理如何删除文件夹内所有txt文本中每一行开头的特定内容

本帖最后由 pcl_test 于 2016-11-22 21:54 编辑

<34> ——位于世界尽头的大陆群,赫尔维蒂。
<40> 神与魔的军队曾在这片大陆上争战不休。
<52> 经理了漫长的战斗后,魔方军队被女神艾路纳特[r]
<53> 封印于地底「伊修妲」的冥门里。
<66> 这里是位于「伊修妲」地底的多层空间[r]
<67> 魔族们被囚禁于此。[r]
<68> 那是一个犹如地狱般的空间。
<74> 因为不见天日,无法种植植物和养殖家畜;[r]
<75> 也因为与地面隔绝而只能传来丝毫人类的负面感情[r]
<76> 这是对魔族们来说宝贵的活力源。
……
<176>
……
<1136>
想把这< >和中间的数字,还有>后面的一个半角空格批量删除。
作者: 273067185    时间: 2016-11-22 21:50

最终效果就是
——位于世界尽头的大陆群,赫尔维蒂。
神与魔的军队曾在这片大陆上争战不休。
经理了漫长的战斗后,魔方军队被女神艾路纳特[r]
封印于地底「伊修妲」的冥门里。
这里是位于「伊修妲」地底的多层空间[r]
魔族们被囚禁于此。[r]
那是一个犹如地狱般的空间。
因为不见天日,无法种植植物和养殖家畜;[r]
也因为与地面隔绝而只能传来丝毫人类的负面感情[r]
这是对魔族们来说宝贵的活力源。
作者: Batcher    时间: 2016-11-22 22:06

  1. @echo off
  2. (for /f "tokens=1,*" %%i in ('type "1.txt"') do (
  3.     echo,%%j
  4. ))>2.txt
复制代码

作者: 273067185    时间: 2016-11-22 22:10

能否批量,直接点击BAT文件自动处理的?有几百个名字不一样的TXT。保存的话也保存成原来的名字
作者: Batcher    时间: 2016-11-22 22:25

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /a-d *.txt') do (
  3.     echo 正在处理文件:%%a
  4.     (for /f "tokens=1,*" %%i in ('type "%%a"') do (
  5.         echo,%%j
  6.     ))>"%%a_tmp"
  7.     move /y "%%a_tmp" "%%a" > nul
  8. )
复制代码

作者: 273067185    时间: 2016-11-22 22:42

本帖最后由 273067185 于 2016-11-22 22:44 编辑

不过原始TXT编码是UTF-16LE带签名,批量的时候会强制变成GBK编码
作者: pcl_test    时间: 2016-11-22 23:37

  1. powershell -c "$fd='处理结果\';md $fd -force;dir *.txt|%%{[IO.File]::ReadAllText($_, [Text.Encoding]::Unicode) -replace '(?m)^ *?<[^<]*> *',''>($fd+$_.Name)}"
  2. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2