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

[文本处理] 【已解决】批处理怎样给包含关键词的“行”植入标记?

问题(1):我想在当前文件夹(包含孑文件夹),只要搜索出包含“日期格式”的“”,就在其行前植入一个“”字符(以作为标记)

问题(2):我有一个“关键词.txt”,文件内容是关键词,一行一个。我想在当前文件夹(包含孑文件夹)进行搜索,若文本内容中包含“关键词”的“”,就在其行前植入一个“”字符(以作为标记)
1

评分人数

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

本帖最后由 屡败屡战 于 2018-7-24 23:53 编辑

我没弄明白什么补零是什么意思?我的文档是从网上下载的,文档中有多余的内容,例如作者、来源、发布日期等等,想删除这些多余内容,只保留文档的正文即可,以方便浏览。

TOP

2008-7-03
谁出的馊主意用这种格式啊
要嘛都补0,要嘛都不要补0,
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

仅匹配 yyyy-MM-dd 或 yyyy-M-d 或 yyyy/MM/dd 或 yyyy/M/d 格式
  1. @if(0)==(0) echo off
  2. dir /b /a-d /s *.txt | cscript //nologo //e:jscript "%~f0"
  3. pause & goto :EOF
  4. @end
  5. var fso = new ActiveXObject('Scripting.FileSystemObject');
  6. var reg = /^.*(\d{4})([-/])(\d{1,2})\2(\d{1,2})/gm;
  7. var checkValidDate = function(s0, s1, s2, s3, s4){
  8.     var dt = new Date(s1, s3 - 1, s4);
  9.     return (dt.getFullYear() == s1 && (dt.getMonth() + 1) == s3 && dt.getDate() == s4) ? '¥' + s0 : s0;
  10. }
  11. while(!WSH.StdIn.AtEndOfStream){
  12.     var strFile = WSH.StdIn.ReadLine();
  13.     var objFile = fso.OpenTextFile(strFile, 1);
  14.     var str = objFile.ReadAll().replace(reg, checkValidDate);
  15.     objFile.Close();
  16.     fso.OpenTextFile(strFile, 2).Write(str);
  17. }
复制代码
1

评分人数

TOP

所谓的“日期格式”千变万化,包括长日期格式、短日期格式、utc 标准格式、甚至 Unix 时间戳 等等。
要把文本里所有的“日期格式”都找出来,你那是在说梦话。

TOP

正则表达式:
查找(.*\d{4}-\d{1,2}-\d{1,2}.*)
替换为¥\1
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

望给些提示

TOP

返回列表