You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在批处理脚本中提取HTML指定日期并赋值给变量

纯批处理解决方案

假设你的HTML文件名为version.html,可以结合findstr定位目标行,再通过for /F的字符串替换与截取功能提取日期:

@echo off
setlocal enabledelayedexpansion

:: 定位包含目标内容的行
for /f "delims=" %%a in ('findstr /C:"Current version:" version.html') do (
    set "line=%%a"
    :: 移除"<span>**"及之前的所有内容
    set "line=!line:*<span>**=!"
    :: 以"**"为分隔符截取第一段内容,即目标日期
    for /f "delims=**" %%b in ("!line!") do set "CurrentVersionDate=%%b"
)

:: 测试提取结果
echo 提取到的版本日期:!CurrentVersionDate!
endlocal

逻辑说明

  • findstr /C:"Current version:"精准定位包含目标文本的行,避免无关内容干扰
  • !line:*<span>**=!利用变量替换特性,清空<span>**及之前的所有字符
  • 最后通过for /f以**为分隔符,直接截取第一段内容得到目标日期

更鲁棒的PowerShell辅助方案

如果HTML结构存在格式变化(比如换行、额外属性),PowerShell的DOM解析能力更可靠:

@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%a in ('powershell -Command "$html = Get-Content 'version.html' -Raw; $doc = New-Object -ComObject 'HTMLFile'; $doc.write($html); $doc.getElementsByTagName('span') | Where-Object { $_.previousSibling.innerText.Trim() -eq 'Current version:' } | Select-Object -ExpandProperty innerText"') do (
    set "CurrentVersionDate=%%a"
)

echo 提取到的版本日期:!CurrentVersionDate!
endlocal

逻辑说明

  • 通过PowerShell加载HTML文档,利用DOM节点关系查找目标元素:定位前一个兄弟节点文本为Current version:的<span>标签
  • 自动忽略HTML中的格式差异,提取结果稳定性更强

注意事项

  • 若HTML文件不在当前目录,需替换为绝对路径
  • 纯批处理方案依赖目标行的格式严格匹配,若<span>标签带有额外属性(如class),需调整替换的字符串内容
  • PowerShell方案需要Windows系统支持HTMLFile COM对象,主流Windows版本均自带该组件

内容的提问来源于stack exchange,提问作者masondoceu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:30:46