有没有办法直接在资源管理器中更改驱动器号?

有没有办法直接在资源管理器中更改驱动器号?

通常这是通过磁盘管理完成的,但似乎应该有一种方法可以直接在 Windows 资源管理器中执行此操作。如果您使用大量闪存或外部驱动器,这可能会很有用。

虽然我知道没有原生解决方案,但我希望有一种简单的方法可以直接在 Windows 资源管理器界面中执行此操作。我想也许其他人已经编写了一个工具或一个自动热键脚本或其他类型的脚本。

答案1

在 Windows 资源管理器中没有办法。

您可以通过命令行使用diskpart

答案2

我写了一篇自动热键脚本。

请注意,AutoHotkey 必须以管理员身份运行才能执行此项工作。

要使用此功能,请在 Windows 资源管理器中选择驱动器,如下所示:

Explorer 驱动器选择

然后按 ALT+L。

这将使用所选卷加载 diskpart,并等待您输入新的驱动器号:

磁盘分区

现在只需输入新的驱动器号并按 Enter。

该脚本不执行任何类型的错误检测,因此使用时请自担风险。
此脚本不检测映射的网络驱动器,并将尝试将其更改为本地驱动器。
此外,一旦启动,就无法取消脚本。要取消它,只需按 Esc 键,然后按 Enter 键。

事实上,您可以选择目标卷上的任何文件,它仍然可以工作。

脚本如下:

; Retrieved from
; http://www.autohotkey.com/board/topic/100983-how-can-we-retrieve-the-name-of-a-file-selected/
Explorer_GetSelection(hwnd="")
{
  hwnd := hwnd ? hwnd : WinExist("A")
  WinGetClass class, ahk_id %hwnd%
  if (class="CabinetWClass" or class="ExploreWClass" or class="Progman")
    for window in ComObjCreate("Shell.Application").Windows
      if (window.hwnd==hwnd)
        sel := window.Document.SelectedItems
        for item in sel
        ToReturn .= item.path "`n"
        return Trim(ToReturn,"`n")
}

#IfWinActive ahk_class CabinetWClass
!l::
currentLetter:=SubStr(Explorer_GetSelection(), 1, 1)
if RegExMatch(currentLetter, "i)[a-z]") == 0
  Return
Run, diskpart
Sleep 2000 ; Wait 2 seconds
Send, SELECT VOLUME %currentLetter%{enter}
Sleep 2500
Send, REM Please enter the new drive letter and press Enter{enter}
Send, ASSIGN LETTER=
Input, newDriveLetter, I V, {enter}
Send, {enter}
Send, EXIT{enter}
Return
#IfWinActive

相关内容