Add-Type -AssemblyName System.Web
Get-ChildItem *.html -Recurse | ForEach-Object {
    $html = Get-Content $_.FullName -Raw -Encoding UTF8
    $doc = New-Object -ComObject "HTMLFile"
    $doc.IHTMLDocument2_write($html)
    $text = $doc.body.innerText
    $text = [System.Web.HttpUtility]::HtmlDecode($text)
    $text | Set-Content ($_.BaseName + ".txt") -Encoding UTF8
}

把所有 HTML 放到同一个文件夹,打开 PowerShell(Win + S 搜索),cd 进入该文件夹,然后直接粘贴运行下面代码(一行一行回车):

-Recurse 会自动处理子文件夹。

输出 .txt 会和原 HTML 同名同目录。

如果遇到编码问题,把 -Encoding UTF8 改成 Default 试试。