我通常会同时运行多个浏览器。并且会不断随机更改我的默认浏览器,因为我讨厌随时拥有默认浏览器的想法。我尝试使用一个显示列表的应用程序,但它没有说明哪些浏览器正在运行或没有运行等等...
现在我才意识到,复制并粘贴 URL 才是最佳方式。我知道哪些浏览器处于打开状态,我知道其他选项卡上的内容。我可以在粘贴之前查看并改变主意。我可以决定是否打开新选项卡或是否重复使用一个选项卡。我可以决定在选项卡列表中的哪个位置打开新选项卡。等等。粘贴具有浏览器选择器无法比拟的几个优点。
但是复制 URL 很麻烦。特别是因为我可能会在复制过程中不小心点击。然后我不得不等待不需要的浏览器打开。关闭它。然后返回复制。或者当我看到我想从电子邮件中阅读的 URL 时,我只是反射性地点击...
因此,由于“默认浏览器”操作只是向应用程序发送一个 URL,那么向其发送剪贴板的更简单方法是什么?是否有可以在 Windows 上使用的简单脚本来执行此操作?在 Linux 上,我用一行代码做到了这一点……但我不知道如何在不全面安装 cygwin 的情况下编写 Windows 脚本,而且我现在不想这样做。
编辑1:
发现 windows 上默认附带的 clip.exe,但向它传递信息很棘手。
C:\>echo http://[email protected]/?x=1&y | clip
http://[email protected]/?x=1
'y' is not recognized as an internal or external command,
operable program or batch file.
所以我尝试添加引号...但是现在剪贴板中的 url 也有引号...
编辑2:
如何使用自定义默认浏览器:
如何为自定义应用程序(例如 foobar.exe)设置 Windows 默认浏览器?
编辑 3:这正在成为一个大项目……将继续在这里添加更新。该脚本由 heavyd answer 处理,因此添加到剪贴板的问题已解决。但这只能解决 50% 的问题,使该脚本成为默认浏览器被证明是一个巨大的问题。
在我改变焦点并粘贴之前,以一种不错的方式来通知用户(我:)发生了什么,以及什么被复制到了剪贴板。http://www.paralint.com/projects/notifu/
答案1
我创建了一个快速批处理文件来处理提供的 URL。它只是转义&
URL 中的字符,这样它们就不会在命令行上被解析。
@echo off
set str=%1
set str=%str:&=^^^&%
echo %str:"=% | clip
你可以像这样调用该脚本:
to_clipboard.cmd "http://[email protected]/?x=1&y"
如果您的 URL 可能包含其他保留字符(|
,, ) <
,>
您可能必须单独对它们进行转义。
答案2
创建heavyd提供的批处理文件,命名为browser.bat 在:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\
UrlAssociations\http\UserChoice]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\
UrlAssociations\https\UserChoice]
将默认密钥更改为批处理文件,例如 c:\1progs\1scripts\browser.bat
清除 ProgId 项。
现在您的链接将被复制到剪贴板,以便您可以将其粘贴到您选择的浏览器中。此外,您还可以将 htm、url 和 html 文件关联到您的批处理文件。