在 Windows 资源管理器中生成“file://”URI

Rob*_*mme 6 windows windows-explorer uri

我正在寻找一种从 Windows 资源管理器中获取正确文件的方法:/ URI。基本上我想要一个上下文菜单条目,上面写着“将文件 URI 复制到剪贴板”。这样的东西存在吗?

这不是“将文件名复制到剪贴板”的副本,因为我想要一个文件 URI 而不是路径名。

澄清一下:我希望得到“file:///c:/Temp/foo%20bar.txt”而不是“C:\Temp\foo bar.txt”、“foo bar.txt”和“C:\温度”。

w32*_*2sh 3

刚刚想出了这个VBS。

If WScript.arguments.count > 0 Then
    Dim WshShell: Set WshShell = WScript.CreateObject("Wscript.Shell")
    strPath = "file:///" & Wscript.Arguments(0)
    strPath = Replace(strPath,"\","/")
    strPath = Replace(strPath," ","%20")
    sCmd = "%comspec% /c<nul (set/p anyvariable=" & Chr(34) & strPath & Chr(34) & ")|clip.exe"
    WshShell.Run sCmd,0,0
    Set WshShell = Nothing
End If
Run Code Online (Sandbox Code Playgroud)

将其另存为 .VBS 文件。将文件拖放到 VBScript 上,它会将文件的 URI 复制到剪贴板。如果需要,可以在右键菜单中实现。

它将文件名复制到内存,反转斜杠,用“%20”替换空格,并在开头附加“file:///”。这是一个基本脚本,仅支持一个文件名/参数。您可以根据需要进行修改。

将脚本添加到“发送到”文件夹

您可以将脚本的快捷方式放置在“发送到”文件夹中。按WinKey+ R,键入shell:sendto并按ENTER。在“发送到”文件夹中创建脚本的快捷方式并相应命名。(例如Copy File URI

现在,右键单击文件,单击发送到,然后单击Copy File URI。文件路径将以如下 URI 格式复制到剪贴板。

file:///C:/Users/jack/desktop/list-of-items.txt
Run Code Online (Sandbox Code Playgroud)