Red de conocimiento informático - Problemas con los teléfonos móviles - Programación VB para cambiar la letra de la unidad de disco

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