Batch file 当url带有标签和问号时,注册自定义URI方案在Windows 7上不起作用

Batch file 当url带有标签和问号时,注册自定义URI方案在Windows 7上不起作用,batch-file,windows-7,registry,uri,Batch File,Windows 7,Registry,Uri,所以我必须注册一个自定义uri,cnx://,让IE启动Chrome 我已经在Windows7、Windows8和Windows10上测试了我的注册表项 一切正常,除了在Win7上有带有标签和问号的URL外: cnx://www.url.com/something/place/page.php?foo=bar 不管出于什么原因,这都会导致 cnx://www.url.com/something/?foo=barplace/page.php 我已经通过将重要的注册表项从 [HKEY_LOCAL_M

所以我必须注册一个自定义uri,cnx://,让IE启动Chrome

我已经在Windows7、Windows8和Windows10上测试了我的注册表项

一切正常,除了在Win7上有带有标签和问号的URL外:

cnx://www.url.com/something/place/page.php?foo=bar

不管出于什么原因,这都会导致

cnx://www.url.com/something/?foo=barplace/page.php

我已经通过将重要的注册表项从

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CNX\shell\open\command]
@="\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\Chrome.exe\" %1"
公正

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CNX\shell\open\command]
@="cmd /k echo %1"
它在命令提示符中显式显示了损坏

仅在Windows7上发生。 在Win8和Win10上可以正常工作。 而其他URL约定在windows7上也可以正常工作,只是当它有一个And时就不行了

然后,它就被弄坏了

当然,做得很好。它只会在使用这个自定义uri功能时出错

有人能提供一个解决办法吗

我尝试用%23place疯狂地编码place,但后来我失去了理智,试图将字符串替换回原始位置

@ECHO OFF SETLOCAL 当前位置此部分仅用于演示-开始 调用:sub-cnx://www.url.com/something/place/page.php?foo=bar 电话:sub-cnx://www.url.com/something/?foo=barplace/page.php 后藤:eof 当前位置此部分仅用于演示-结束 :sub 对于/f令牌=1-3delims=?%%在%1中有一个 设置零件a=%%a SET partb=%%b SET partc=%%c 集合组合=%parta%%partb%?%partc% 如果%*neq%combo%SET combo=%parta%%partc%?%partb% ECHO C:\Program Files x86\Google\Chrome\Application\Chrome.exe%combo% 后藤:EOF ISTM%1在Win7中以不同的方式提供,所以诀窍是启用标记化?然后适当地重新组装成令牌

关键应该是

@="thisbatch "%1""
我相信,这里没有专家。要点是应该引用%1

[对评论的回应-动态,未经测试;可能需要一些逃避…]


@=cmd/c cd c:\Program Files x86\Google\Chrome\Application&FOR/f tokens=1-3delims=?%%如果%%a%%b?%%c==%1 chrome.exe%1 else chrome.exe%%a%%c?%%b,则%1中的a应该做什么。非常感谢。但是,如果乞丐可以选择,有没有一种方法可以跳过批处理文件并将其全部作为命令行来执行?类似于cmd/k FOR/f标记=1-3delims=?%%%1中的a设置parta=%%a设置partb=%%b设置partc=%%c设置组合=%parta%%partb%?%partc%IF%*neq%combo%SET组合=%parta%%partc%?%partb%SET组合=%combo:cnx://=%c:\Program Files x86\Google\Chrome\Application\Chrome.exe%combo%?它不能正常工作,因为我认为它需要在命令之间添加一些符号,或者添加/删除一些百分比…只是不确定在哪里或者抱歉,CMD/c,因为最后关闭命令窗口会很好,当它完成时。只要把它作为CMD/K来检查输出,就可以在我的记忆中燃烧……您的回答似乎是金色的。对于任何遇到这种情况的人来说,这只适用于Win7,可能可以在8及以上版本中编辑,但就目前而言,这非常适合我的需要。再次感谢!!!是的。不幸的是,它删除了一堆(如果不是全部的话)querystring参数。我确信命令中可能还有一些额外的编辑要做,但上面的语法对我来说主要是巫毒。上帝保佑你,因为你精通它。我相信你是公司的宝贵财富。哈!我已经失业16年了。雇主们更喜欢新毕业生挥舞着一张纸,而不是一个能告诉他们为什么他们考虑不周的计划行不通的人。