在 Windows 上,有没有办法将选定的文本作为文件夹打开?

在 Windows 上,有没有办法将选定的文本作为文件夹打开?

例如,假设我在某处有文本(记事本、Word......):

转至目录目录:, 然后...

我想选择粗体内容,右键单击并显示菜单项“转到 C:\Program Files“。

有没有任何扩展(或者可能是 Windows 方式)可以实现这个功能?

答案1

除非有人制作了一个应用程序来执行您所描述的操作(我不知道有任何应用程序),否则解决方案将涉及编码或脚本。

据我了解,问题分为两部分:

1)如何从选定的文本中打开路径

2)如何将#1添加到上下文菜单。

对于 #1(编写动作):

这可以通过多种语言以编程方式实现。我个人会使用 Autohotkey 脚本,但也可以采用其他方式实现。

以下脚本在 Autohotkey L (1.1) 下对我有用,可在此处找到 https://www.autohotkey.com/download/

目前,我已将其绑定到 F3 键。但可以根据此处的语法将其调整为任何键: https://www.autohotkey.com/docs/Hotkeys.htm

安装 AHK_L 然后保存为 openSelPath.ahk:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

; test folder D:\Downloads
; test file D:\Dev\YOmDuDV.jpg
; no-existent path D:\Dev\doesnotexist.foo

~F3::
    openSelectedPath()
    return



openSelectedPath() {
    send, ^c
    sleep, 200
    strPath := Clipboard 
    intLen := StrLen(strPath)
    if ( intLen > 0) {
        ;check if path exists
        strResult := FileExist(strPath)
        if ( "" == strResult) {
            msgbox, 48, Error:, Path "%strPath%" not found.
            return
        }
        isDir := (0 != InStr(strResult, "D"))
        if ( 1 == isDir ) {
            Run, explorer.exe "%strPath%"
            return
        }

        intLastSlash := InStr(strPath, "\", false, 0)
        if ( 0 == intLastSlash ) {
            msgbox, 48, Error:, Path "%strPath%" not found.
            return
        }
        strParentDir := SubStr(strPath, 1, intLastSlash- 1)

        ;check if path exists
        strResult := FileExist(strParentDir)
        if ( "" == strResult) {
            msgbox, 48, Error:, Path "%strParentDir%" not found.
            return
        }
        isDir := (0 != InStr(strResult, "D"))
        if ( 1 == isDir ) {
            Run, explorer.exe "%strParentDir%"
            return
        }
    }
    return
}

对于 #2(添加到上下文菜单):

我看到其中一个标签是“上下文菜单”...我承认,我不确定您是否会从上下文菜单中执行此操作;根据描述,听起来您想直接从记事本/写字板/等中执行此操作。对上下文菜单的支持是特定于程序的。

我认为您无法从任何 Microsoft 应用程序(Notepad/Wordpad/Word/Excel/等)的上下文菜单中访问它,因为它们是闭源的。您也许可以为 Office 应用程序做一些插件,但我认为这需要编程。

我知道一些开源应用程序(例如 Notepad++)支持通过 XML 等定义快捷方式(我认为 NPP 也可能支持上下文菜单选项,但这可能需要用 C++ 编写插件)。

如果您正在谈论 Windows 资源管理器/文件资源管理器,则可以添加上下文菜单动词,但对于我来说,在这种情况下这样做没有意义,因为您可能会从其他程序启动。

相关内容