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


2

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

虽然我意识到没有本机解决方案,但我希望有一种简单的方法可以直接在Windows资源管理器界面中执行此操作。我想也许其他人写过一个工具或者一个autohotkey脚本或其他类型的脚本。


如果您不需要输入驱动器字母,那么它是否真的非常重要?
gronostaj 2015年


我正在组织外部驱动器上的历史备份,我希望能够为临时驱动器,源驱动器和目标驱动器分配一个特定的字母,以便更容易跟踪。我将经常将它们切换出来,有时源驱动器将成为目标驱动器,并分配特定的驱动器号将有助于防止复制错误的文件。
杰森克莱门特2015年

Answers:


1

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

您可以通过命令行使用diskpart


1

我写了一个AutoHotkey脚本。

请注意,AutoHotkey必须作为此项工作的管理员运行。

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

Explorer Drive选择

然后按ALT + L.

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

DiskPart的

现在只需输入新的驱动器号,然后按Enter键。

该脚本不执行任何类型的错误检测,因此使用风险自负。
此脚本不会检测映射的网络驱动器,并会尝试将它们更改为本地驱动器。
此外,一旦启动脚本,就无法取消该脚本。要取消它,只需按Escape键然后按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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.