Windows 11下使用auto_execok无法打开带锚点URL问题求助
Windows 11下Tcl打开带锚点URL的锚点丢失问题解决办法
在Windows 11中使用Tcl代码打开带锚点的本地HTML文件时,锚点会被忽略,仅打开文件本身;而Linux环境下可正常定位到锚点。原代码如下:
set url "mylocalfile.html#anchor1" set command [list {*}[auto_execok start] {}] exec {*}$command $url
问题原因
Windows的start命令会将#后的锚点内容识别为独立参数,而非URL的一部分,导致锚点被剥离。
解决方案
方案1:给URL包裹双引号
通过给URL添加双引号,让start命令将整个带锚点的URL视为单个参数传递:
set url "mylocalfile.html#anchor1" set command [list {*}[auto_execok start] {} "\"$url\""] exec {*}$command
或者简化写法:
set url "mylocalfile.html#anchor1" exec {*}[auto_execok start] {} "\"$url\""
方案2:直接调用explorer.exe
绕过start命令,用explorer.exe直接打开URL,避免参数解析问题:
set url "mylocalfile.html#anchor1" exec explorer.exe "$url"
内容的提问来源于stack exchange,提问作者marianna
相关产品推荐
相关产品推荐

