Batch file 当url带有标签和问号时,注册自定义URI方案在Windows 7上不起作用
所以我必须注册一个自定义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 我已经通过将重要的注册表项从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
[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年了。雇主们更喜欢新毕业生挥舞着一张纸,而不是一个能告诉他们为什么他们考虑不周的计划行不通的人。