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

BAT/HTA混合文件:如何在HTML部分转义百分号?

Batch/HTA混合文件中含百分号的音频URL无法播放的解决方案

问题说明

我正在开发一个Batch/HTA混合文件,希望为应用添加背景音乐。当将包含百分号的URL添加到<bgsound>标签时,音乐无法播放,但使用不含百分号URL的应用可正常运行。尝试添加双百分号让Batch忽略它,但无效果,不清楚如何在HTML部分转义这些字符。

问题根源

Batch会将文件中的单个%视为变量标识符,当HTML的URL里出现%20这类URL编码字符时,Batch会尝试解析%2%这个未定义的变量(替换为空),导致URL中的%20被破坏成0,最终音频地址无效。

解决方法

方法一:转义Batch中的百分号

将URL里的每个%替换成%%,Batch处理时会把%%解析为单个%,HTA就能拿到正确的URL:

<!-- :: Batch section
@echo off
setlocal EnableDelayedExpansion
start "" mshta.exe "%~f0"
exit /b
-->


<html>
<head>
    <HTA:APPLICATION SCROLL="no" SYSMENU="yes" >
    <title>ACNH - Time Travel Date Selection</title>
    <script language="JavaScript">
    window.resizeTo(1280, 720);
    </script>
</head>
<body>

    <div class="wrapper">
        <h1>Testing audio...</h1>
    </div>
    <bgsound src="https://vgmsite.com/soundtracks/animal-crossing-new-horizons-2020-switch-gamerip/pdjxvsymlc/3-02%%20Get%%20Ready%%20for%%20Your%%20Flight%%21.mp3">

</body>
</html>

方法二:用JavaScript动态设置音频源

避免直接在HTML标签中写带百分号的URL,改用JavaScript动态赋值,Batch不会解析JS字符串里的百分号:

<!-- :: Batch section
@echo off
setlocal EnableDelayedExpansion
start "" mshta.exe "%~f0"
exit /b
-->


<html>
<head>
    <HTA:APPLICATION SCROLL="no" SYSMENU="yes" >
    <title>ACNH - Time Travel Date Selection</title>
    <script language="JavaScript">
    window.resizeTo(1280, 720);
    window.onload = function() {
        // 创建bgsound元素并设置源
        var bgSound = document.createElement('bgsound');
        bgSound.src = "https://vgmsite.com/soundtracks/animal-crossing-new-horizons-2020-switch-gamerip/pdjxvsymlc/3-02%20Get%20Ready%20for%20Your%20Flight%21.mp3";
        document.body.appendChild(bgSound);
    }
    </script>
</head>
<body>

    <div class="wrapper">
        <h1>Testing audio...</h1>
    </div>

</body>
</html>

进阶:使用HTML5 <audio>标签替代<bgsound>

<bgsound>是IE旧标签,用<audio>兼容性更好、功能更完善:

// 替换上述代码中的window.onload函数
window.onload = function() {
    var audio = document.createElement('audio');
    audio.src = "https://vgmsite.com/soundtracks/animal-crossing-new-horizons-2020-switch-gamerip/pdjxvsymlc/3-02%20Get%20Ready%20for%20Your%20Flight%21.mp3";
    audio.loop = true; // 循环播放
    audio.autoplay = true; // 自动播放
    document.body.appendChild(audio);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 14:47:55