Board logo

标题: [文本处理] [已解决]BAT怎样删除50个字符一下的行?谢谢各位老师! [打印本页]

作者: 1270697389    时间: 2014-1-11 14:39     标题: [已解决]BAT怎样删除50个字符一下的行?谢谢各位老师!

文件a.txt里面的内容要删除50个字符一下(含50)的行,50个字符以上的行留下保存我b.txt。
谢谢!

作者: 522235677    时间: 2014-1-11 17:13

最好给出实际要被操作的文本
作者: terse    时间: 2014-1-11 18:35

FINDSTR 试下
作者: PowerShell    时间: 2014-1-11 19:38

本帖最后由 PowerShell 于 2014-1-13 08:56 编辑

很简单啊,powershell代码
  1. Get-Content  a.txt  | foreach-object { if ($_.length -ge 50) {$_  >> b.txt } }
复制代码
这里是指50个英文字母,含空格
这里的 $_ 代表每一行。
作者: 522235677    时间: 2014-1-11 21:00

  1. @echo off & setlocal ENABLEDELAYEDEXPANSION
  2. for /f "delims=" %%i in (a.txt) do (set a=%%i&if not "!a:~50,1!"=="" echo %%i>>b.txt)
  3. pause
复制代码

作者: apang    时间: 2014-1-12 18:16

  1. @echo off
  2. for /l %%a in (1 1 5) do set "re=!re!.........."
  3. findstr "^!re!" a.txt>b.txt
复制代码

作者: terse    时间: 2014-1-12 18:55

本帖最后由 terse 于 2014-1-12 18:57 编辑

回复 6# apang
觉得关键词是否这样完善些  findstr /i "!re!.*"
其实前面也提示用 FINDSTR 文件大大话 感觉效率会提升点
作者: apang    时间: 2014-1-12 21:31

回复 7# terse


    确实是我搞错了
  1. @echo off & setlocal enabledelayedexpansion
  2. for /l %%a in (1 1 5) do set "re=!re!.........."
  3. findstr /i %re%.* a.txt>b.txt
复制代码

作者: 1270697389    时间: 2014-1-13 08:36

回复  terse


    确实是我搞错了
apang 发表于 2014-1-12 21:31



    请问哪里是管字数的地方,便于修改,谢谢
作者: terse    时间: 2014-1-13 09:39

回复 9# 1270697389
  1. Rem 设置字数
  2. set n=50
  3. for /l %%i in (1 1 %n%) do set "re=!re!."
复制代码

作者: 1270697389    时间: 2014-1-13 12:16

回复  1270697389
terse 发表于 2014-1-13 09:39



    谢谢您
作者: 1270697389    时间: 2014-1-13 12:26

回复  1270697389
terse 发表于 2014-1-13 09:39



    "re=!re!.."
是什么意思呢?




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