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

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

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
初九的冬天

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



    "re=!re!.."
是什么意思呢?
初九的冬天

TOP

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



    谢谢您
初九的冬天

TOP

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

TOP

回复  terse


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



    请问哪里是管字数的地方,便于修改,谢谢
初九的冬天

TOP

回复 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
复制代码
1

评分人数

    • 1270697389: 请问哪里是管字数的地方技术 + 1

TOP

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

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

TOP

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

TOP

  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
复制代码
1

评分人数

TOP

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

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

评分人数

脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

FINDSTR 试下

TOP

最好给出实际要被操作的文本

TOP

返回列表