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

使用Chrome和PowerShell打开带参数本地文件时#被转义问题求解

问题原因

#被转义为%23的核心原因是:直接传递Windows本地文件路径(形如C:\xxx\xxx.html)给Chrome时,Chrome会将其识别为文件系统路径而非标准URL,会自动对路径中的所有特殊符号做URL编码,其中就包括#符号,所以被转成了%23,导致哈希参数失效。

解决方法

需要先把本地文件路径转换为标准file://协议格式的URL,再拼接哈希参数,Chrome就会正确识别#为哈希分隔符,不会进行转义。

修正后代码

$MediaName = "Test_Media"

$CurrentLocation = Get-Location

$PreviewTemplateLocation = "$($CurrentLocation.Drive.Name):\\Work_all\Tools\Script\MCD\Script\template"
$TemplateIndexLocation = Join-Path -Path $PreviewTemplateLocation -ChildPath "index.html"

# 将本地路径转换为标准file协议URL
$FileUri = [System.Uri]$TemplateIndexLocation
# 拼接哈希参数后再和启动参数组合
$ChromeArgs = "$($FileUri.AbsoluteUri)#media=$($MediaName) --incognito --disable-web-security --auto-open-devtools-for-tabs --user-data-dir=C:/chromeTemp"

[System.Diagnostics.Process]::Start("chrome.exe", $ChromeArgs)

补充说明

  • [System.Uri]转换会自动处理路径中的反斜杠、特殊字符编码问题,不需要手动拼接file://前缀,避免出错
  • 转换后的AbsoluteUri本身就是符合URL规范的格式,后续拼接的#会被Chrome正确识别为哈希片段的起始标识,不会被编码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:15:02