Не совсем 5 лет опоздал на вечеринку. Вот удобный сценарий, который я написал с использованием сценария выше, который первоначально был из https://gallery.technet.microsoft.com/scriptcenter/ccae4d09-1bee-4f10-8c8c-176a53a65238
Я подключаю USB-накопители часто и часто, и у меня есть несколько устройств, которые мне нравятся «навсегда», назначенные конкретным буквам диска , Сохраните этот код в текстовом файле и переименуйте его в: ChangeDriveLetter.vbs
Поместите файл где-нибудь на свой компьютер, а затем создайте ярлык для него на рабочем столе или в любом месте. Затем щелкните правой кнопкой мыши ярлык и укажите комбинацию клавиш, которую вы хотели бы использовать, чтобы открыть ее в любое время, когда вы хотите изменить букву диска или два.
Это работает на Windows 10
' Elevate the script to run As Administrator
If Not WScript.Arguments.Named.Exists("elevate") Then
CreateObject("Shell.Application").ShellExecute WScript.FullName _
, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1
WScript.Quit
End If
' Ask the user which drive to change, and what to change it to.
Sub subAskUser()
strSourceDrive = InputBox("What Drive to Reassign","Enter the drive letter to reassign:","D")
If ((strSourceDrive = vbCancel) Or (strSourceDrive = "") Or IsEmpty(strSourceDrive)) Then
WScript.Quit
End If
strTargetDrive = InputBox("What Letter to Assign","Enter the new drive letter:","Q")
If ((strTargetDrive = vbCancel) Or (strTargetDrive = "") Or IsEmpty(strTargetDrive)) Then
WScript.Quit
End If
'If The letters are present and the user did not cancel, then call the Subroutine to change the letters
subChangeLetter strSourceDrive, strTargetDrive
End Sub
subAskUser()
Sub subChangeLetter(strSourceDrive, strTargetDrive)
'Check that the C: drive is not the letter that the user is trying to change from or to.
If ((strSourceDrive <> "C") And (strSourceDrive <> "c") And (strTargetDrive <> "C") And (strTargetDrive <> "c")) Then
'Uncomment the next lines to see the values entered from the InputBox
'MsgBox strSourceDrive
'MsgBox strTargetDrive
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colVolumes = objWMIService.ExecQuery _
("Select * from Win32_Volume Where Name = '"& UCase(strSourceDrive) & ":\\'")
For Each objVolume in colVolumes
objVolume.DriveLetter = UCase(strTargetDrive) & ":"
objVolume.Put_
Next
Else
MsgBox "Ah, ah, ah! You can't change the C: drive, dude!",16
End If
End Sub
strGoAgain = MsgBox("Change another drive letter?",4)
If strGoAgain = vbYes Then
subAskUser()
End If
WScript.Quit
Просьба предоставить более подробную информацию. Мне непонятно, чего вы на самом деле хотите достичь. Вы хотите назначить буквы дисков для размонтированных томов? –
Я хочу иметь три буквы диска, которые «c» «d» «v» и dvd привод «e». поэтому для каждой системы я должен изменить вручную в опции управления. Поэтому я хочу достичь этого в скрипте, когда я запускаю скрипт, поле должно открывать и показывать разделы и запрашивать новую букву диска. Например ... Раздел 1 150gb = введите новую букву .... partition 2 1tb = введите новую букву. – user2365321
Я до сих пор не понимаю. Если вы хотите интерактивно менять буквы дисков, вы можете просто сделать это с помощью 'diskmgmt.msc'. –