首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用.bat脚本在HTML中确定日期

如何使用.bat脚本在HTML中确定日期
EN

Stack Overflow用户
提问于 2020-04-10 17:37:42
回答 1查看 95关注 0票数 3

我有一个.html文件titlepage.html,它包含以下行:

<span class="titlepage modified">Modified: Feb 13, 2020 </span>

问题是,有时我忘记更改“修改:”日期。

我运行了一个.bat文件,它将这个titlepage.html移动到正确的位置,因此我认为在.bat文件中添加一个子例程在移动它之前更新日期是有意义的。

我当前的.bat文件如下所示:

代码语言:javascript
运行
复制
@echo off
setlocal enabledelayedexpansion

set infile=titlepage.html
set outfile=result.html
Set find=Modified:
set replace="<span class="titlepage modified">Modified: %DATE% </span>"

del result.html

for /F "tokens=1,2 delims=" %%n in (!infile!) do (
set LINE=%%n
set TMPR=!LINE:%find%=%replace%!
echo !TMPR!>>%outfile%
)

与我的长相有关的那句话是:<span class="titlepage modified">"<span class="titlepage modified">Modified: 04/10/20 </span>" Feb 13, 2020 </span>

因此,它成功地输入了我想要的信息,但我需要它来替换整个行,而不仅仅是用于查找的部分。

*注意日期是任意的,所以我不能对整行执行查找。

所以我想: 1.查找包含字符串2的行。用我的新输入替换整行。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-11 03:50:06

代码语言:javascript
运行
复制
@echo off
setlocal enabledelayedexpansion

set "target=./titlepage.html"
set "destination=./titlepage.html"
set "find=(?mi)^.*Modified:.*$"
set "replace=<span class=\"titlepage modified\">Modified: %DATE% </span>"

powershell -noprofile -command^
 $content=get-content -path '!target!';^
 $result=$content -replace '!find!', '!replace!';^
 set-content -path '!destination!' -value $result

powershell读取目标./titlepage.html,执行替换操作并写入目标./titlepage.html

正则表达式模式在一行中搜索Modified:find变量包含模式并使用选项(?mi)m是多行模式,而i是不区分大小写的。如果希望不区分大小写,请删除i

正则表达式模式:

  • (?mi)正则表达式选项。m是多行的,而i是不区分大小写的。
  • ^默认情况下,匹配必须从字符串的开头开始;在多行模式下,必须从行的开头开始。
  • .通配符:匹配除\n以外的任何单个字符。
  • *匹配前一个元素0次或多次。
  • $默认情况下,匹配必须发生在字符串的末尾或字符串末尾的\n之前;在多行模式下,必须发生在行尾之前或行尾的\n之前。

替换字符串:

  • \"逃逸嵌套用于命令行解析到powershell的双引号。

有关更多信息,请查看正则表达式语言-快速引用

行尾的^ ( powershell命令)是行的延续。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61145640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档