【发布时间】:2020-07-23 12:26:12
【问题描述】:
我有一个 .html 文件 titlepage.html,其中包含以下行:
<span class="titlepage modified">Modified: Feb 13, 2020 </span>
问题是,有时我忘记更改“修改:”日期
我运行了一个 .bat 文件,它将这个 titlepage.html 移动到正确的位置,所以我认为在 .bat 文件中添加一个子例程以在移动它之前更新日期是有意义的。
我当前的 .bat 文件如下所示:
@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. 用我的新输入替换整行。
提前致谢。
【问题讨论】:
-
脚本的相关输出是什么样的?它会给你错误吗?由于所有这些特殊字符,在批处理脚本中处理任何 XML/HTML 都非常棘手。我很确定您不需要
set replace = "..."行中的外引号,但您确实需要转义<>字符。^<^>. -
我同意上面的观点,这个任务应该修改为使用powershell而不是batch-file。
标签: html batch-file scripting