Programación VB para cambiar la letra de la unidad de disco
Sub RenameVolume()
'Utilice la función Shell para ejecutar el script de comando Diskpart en el símbolo del sistema y guárdelo en el archivo de registro
'Reemplace el disco lógico El propósito del carácter
'Probado exitosamente en el sistema WindowsXp
'Obtener ruta de archivo temporal
Temp = Environ("TEMP") amp " \"
'Obtener ruta del símbolo del sistema
Cmd = Environ("ComSpec")
'Establecer ruta del archivo de script y del archivo de registro
ScriptFile = Temp amp; "DiskpartScript.txt"
ScriptLog = Temp amp "DiskpartScript.log"
'Caracteres de retorno de carro y avance de línea
vbLfCr = vbLf amp; vbCr
'Contenido del archivo de script
'Seleccionar volumen e
'Eliminar letra de unidad e
'Asignar letra de unidad m
'Salir de Diskpart
ScriptTxt = "seleccionar volumen e" amp; vbLf amp; amp; vbCr amp; _
"asignar letra = m" amp; vbCr amp; > 'Abra el archivo de secuencia de comandos y lea el contenido
Abra el archivo de secuencia de comandos para obtener la salida como n.° 1
Imprima n.° 1, ScriptTxt
Cierra n.° 1
'Activar el manejo de errores
Si se produce un error, reanudar a continuación
'Eliminar el archivo de registro original
Eliminar ScriptLog
'Activar desactivado manejo de errores
En error Ir a 0
'Ejecutar script
ShellTxt = Cmd amp; amp; " gt ; " amp; ScriptLog amp """"
Shell ShellTxt
'Activar manejo de errores
En caso de error, reanudar
Hacer
Err.Number = 0
'Abra el archivo de registro y lea el contenido. Debido a que la velocidad de acceso al archivo de registro es lenta, debe abrirse en modo bloqueado. , de lo contrario se producirá un error
Abra ScriptLog para la zona de bloqueo de entrada
d Escribir como #1
DoEvents
Bucle hasta Err.Number = 0
'Desactivar el manejo de errores
En caso de error Ir a 0
'El archivo de registro contiene caracteres chinos y debe leerse en bytes usando la función InputB; de lo contrario, la longitud excederá
LogTxt = InputB(LOF(1), #1)< / p>
Cerrar #1
'Convierte el contenido del archivo de registro leído en bytes
LogTxt = StrConv(LogTxt, vbUnicode)
' Si hay dos los éxitos aparecen en el registro, la ejecución se considera exitosa; de lo contrario, se considera fallida
Si Len(LogTxt) - Len(Replace(LogTxt, "Success", "", 1)) = 4 Entonces< / p>
MsgBox "¡El reemplazo de la letra de unidad fue exitoso!"
Else
MsgBox "¡El reemplazo de la letra de unidad falló!"
End If
'Eliminar archivos temporales
Eliminar ScriptFile
Eliminar ScriptLog
End Sub