如何从命令行在 Microsoft Edge 中打开 URL?
Posted
技术标签:
【中文标题】如何从命令行在 Microsoft Edge 中打开 URL?【英文标题】:How to open URL in Microsoft Edge from the command line? 【发布时间】:2015-09-18 18:48:18 【问题描述】:我需要在 Microsoft Edge(在 Windows 10 上)中打开 URL。当我调用
start shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge http://www.google.com
然后 Microsoft Edge 已正确启动,但未打开给定的 URL(在本例中为 www.google.com)。它会打开 Bing 搜索,其中将给定的 URL 用作搜索词。
【问题讨论】:
我刚刚在 PowerShell 中测试了您上面的命令,它为我正确打开了 google.com。 感谢您指出这一点。我的命令在 PowerShell 中确实有效。我之前在命令提示符(cmd)中尝试过(正如我提到的那样,它会打开 Bing 搜索)。我真的很困惑为什么 cmd 和 PowerShell 的行为不同,但我可以通过 PowerShell 运行命令。 如果由于某种原因无法正常工作,请检查您的报价。我在不使用引号时遇到了explorer "microsoft-edge:https://www.example.com/foo?querystring=yes"
的问题(尽管使用start
我没有任何问题,无论哪种方式)。
【参考方案1】:
以下方法应通过命令提示符 (cmd) 工作:
start microsoft-edge:http://www.cnn.com
【讨论】:
你是怎么想出来的?严重地!我从来没有尝试过..(适用于 Windows 10 Edge) 如何从 c# 启动它?谢谢。 @wasatchwizard:见How to script Microsoft's Edge browser @FruitBreak,这里有点晚了,但这很有效,因为 Microsoft-Edge 的功能 URL 关联(可启动协议)包括:http
、https
、microsoft-edge
和 @987654326 @。有问题的特定协议 Microsoft-Edge
特定于 Edge,而其他协议则受默认应用程序设置(“按协议选择默认应用程序”)的约束。如果 edge 是 read
协议的默认应用程序,那么您可以通过在文件资源管理器 read:http://www.cnn.com
中键入以下内容来启动它。 http
和 https
可以设置为单独的协议,也可以通过默认的网络浏览器一起设置。
不支持file:
方案!【参考方案2】:
Windows 10:使用此目标创建快捷方式:
%windir%\system32\cmd.exe /c "start microsoft-edge:https://twitter.com"
【讨论】:
请注意,您不需要在此处使用引号。所以如果你需要使用程序参数字符串语法,那么你可以使用"c:/windows/system32/cmd.exe"
作为程序,"/c start microsoft-edge:%u"
作为参数字符串。【参考方案3】:
还有一个捷径:
C:\Windows\System32\cmd.exe /c start shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge http://localhost:6516
【讨论】:
这是唯一同时支持file:///
协议打开本地文件的方式。
如果 url 是 http://localhost:6516/sample?x=1&y=2
它不起作用它会导致 http://localhost:6516/sample?x
这是错误的
@ArchisThakkar 在命令行的命令中间不能使用 & 符号。试试这个C:\Windows\System32\cmd.exe /c start shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge "http://localhost:6516/sample?x=1&y=2"
上述内容不起作用,因为双引号没有转义。这对我有用C:\Windows\System32\cmd.exe /c start shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge http://localhost:6516/sample?x=1^&y=2
【参考方案4】:
我也想知道为什么你不能像在 Windows 10 中启动“旧式”应用程序那样只启动 microsoftedge.exe。搜索网络,我找到了答案——这与微软如何实现“通用应用程序”。
以下是从该答案中提取的简短摘要,但我建议阅读整个条目,因为它很好地解释了如何处理这些“通用应用程序”。 Microsoft Edge 并不是我们要处理的唯一此类应用程序。
这是链接:http://www.itworld.com/article/2943955/windows/how-to-script-microsofts-edge-browser.html
这是该页面的摘要:
“Microsoft Edge 是一款“现代”通用应用。这意味着它无法以传统的 Windows 方式从命令行打开:可执行名称后跟命令开关/参数值。但只要有意愿,就会有方式。在这种情况下,“方式”称为协议激活。”
向文章作者 Stephen Glasskeys 致敬。
【讨论】:
秋季创作者更新1709即将发布,商店应用允许命令行+参数【参考方案5】:所有其他解决方案仅适用于 Microsoft Edge(旧版)和 Windows 10。 自 2020 年起,它将停产并由 Microsoft Edge(基于 Chromium)取代。
适用于 Windows 7、8 和 10 的新 Edge 的解决方案是:
start msedge URL
来源:
https://en.wikipedia.org/wiki/Microsoft_Edge#Anaheim_(2019%E2%80%93present) https://docs.microsoft.com/en-us/deployedge/microsoft-edge-sysupdate-windows-updates【讨论】:
我尝试了几件事,但这个解决方案终于有所帮助。谢谢@Baptistou【参考方案6】:就个人而言,我使用我创建并放入我的配置文件脚本...\Documents\WindowsPowerShell\….profile
的这个功能,请随意使用。由于我来自英国,我更喜欢在可能的情况下前往.co.uk
,如果您来自其他地区,您可以添加自己的国家代码。
# Function taking parameter add (address) and opens in edge.
Function edge
param($add)
if (-not ($add -contains "https://www." -or $add -contains "http://www."))
if ($add[0] -eq "w" -and $add[1] -eq "w" -and $add[2] -eq "w")
$add = "https://" + $add
else
$add = "https://www." + $add
# If no domain, tries to add .co.uk, if fails uses .com
if (-not ($add -match ".co" -or $add -match ".uk" -or $add -match ".com"))
try
$test = $add + ".co.uk"
$HTTP_Request = [System.Net.WebRequest]::Create($test)
$HTTP_Response = $HTTP_Request.GetResponse()
$add = $add + ".co.uk"
catch
$add = $add + ".com"
Write-Host "Taking you to $add"
start microsoft-edge:$add
然后你只需要在powershell中调用:edge google
去https://www.google.co.uk
【讨论】:
赞成,因为此解决方案不受其他使用 CMD 的解决方案的长 URL 限制。【参考方案7】:虽然接受的答案是正确的,但当从非控制台应用程序运行时,它具有闪烁控制台窗口的不良工件。
我发现效果最好的解决方案是下面的命令行:
explorer.exe "microsoft-edge:<URL>"
请记住,如果包含 %
符号,则需要键入 %%
,因为 Windows 使用该符号进行变量扩展。
希望有人觉得这很有帮助。
【讨论】:
【参考方案8】:我想推荐: Microsoft Edge 运行包装器https://github.com/mihula/RunEdge
你这样运行它:
RunEdge.exe [URL]
其中 URL 可能包含也可能不包含协议 (http://),如果未提供,包装器会添加 http://
如果根本没有提供 URL,它只是打开边缘
例子:
RunEdge.exe http://google.com
RunEdge.exe www.***.com
这并不是一种全新的方法,但它被包装为 exe 文件,这在某些情况下可能很有用。对我来说,这是从 IBM Notes Basic 客户端启动 Edge 的方式。
【讨论】:
我认为这有点简单:microsoft-edge:[URL] 这对你的情况不起作用吗? 那个项目对我来说似乎毫无意义。为什么不像@TheEmirOfGroofunkistan 所说的那样运行 microsoft-edge:[URL]? 见上文,不幸的是,该程序与公认的解决方案存在相同的问题。它仅适用于少于 245 个字符的 URL。 见上文,但如果 RunEdge 更改为使用 PowerShell 而不是 CMD,它将适用于更长的 URL。 有一个类似的“官方”项目:github.com/MicrosoftEdge/edge-launcher【参考方案9】:看起来事情发生了变化,以前的解决方案不再有效。
但是,这是在 Microsoft Edge 上启动 CNN.com 的有效命令:
microsoft-edge:http://www.cnn.com
【讨论】:
【参考方案10】:我想在此处补充有关从命令行在 Microsoft Edge 中打开空白选项卡的其他答案。
我想补充的一个观察结果是,如果我删除了结尾的冒号,Windows 不会检测到命令microsoft-edge
。我认为当我必须在不提及目标 URL 的情况下打开浏览器时会出现这种情况,例如在打开空白标签的情况下。
如何在 Microsoft Edge 中打开空白标签?
来自运行提示 -microsoft-edge:about:blank
从命令提示符 - start microsoft-edge:about:blank
您还可以在运行提示中使用 Edge 启动搜索。假设我必须搜索 Barack Obama
然后在运行提示符下触发以下命令-
microsoft-edge:Barack Obama
它以 Barack Obama
作为搜索词在 Edge 中启动 Microsoft 的 Bing 搜索网站。
【讨论】:
如何打开新标签页而不是空白页?start microsoft-edge:about:newtab
似乎不起作用,因为它使用默认搜索引擎打开 Edge,而 about:newtab
仅作为搜索词。【参考方案11】:
它会以旧的 dos 脚本方式或多或少地做同样的事情
set add=%1
if %add%$ ==$ set add="about:blank" && goto launch
rem http://
set test=%add:~0, 7%
if %test% == http:// goto launch
rem ftp://
set test=%add:~0, 6%
if %test% == ftp:// goto launch
rem https://
set test=%add:~0, 8%
if %test% == https:// goto launch
rem add http
set add=http://%add%
:launch
start microsoft-edge:%add%
【讨论】:
【参考方案12】:microsoft-edge:http://google.com
(随意打开谷歌)microsoft-edge:
(随便打开)
【讨论】:
以上是关于如何从命令行在 Microsoft Edge 中打开 URL?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过命令行在 MSBuild 中指定 CodeAnalysisRuleset
如何从命令行在 Windows 上运行 .class 文件?