La asignación de una letra de forma "persistente" se puede garantizar, aunque no con un simple script o mejor dicho no asignando la letra una única vez por las razones que el compañero @NEBIRE ya has explicado.
¿Solución?: conociendo un dato específico del disco en cuestión, como por ejemplo el número de serie o el nombre del disco, se puede desarrollar un software que trabaje en segundo plano (o un servicio de Windows) que se suscriba al evento de inserción de dispositivos externos (mediante WMI), y así si, siempre que el disco se inserte en el puerto USB, el software en cuestión detectará el evento de inserción, reconocerá el disco por su número de serie o nombre, y le podrá asignar la letra deseada. Si hay algún otro dispositivo ocupando esa letra, siempre se puede modificar de forma automatizada por otra letra aleatoria/libre para dejar libre esa letra ocupada y poder asignarla al disco externo. Esto sería lo más realista que se podría lograr en términos de persistencia, me refiero, al hablar de persistencia.
@jorguko:
Por un módico precio te ofrecería mis servicios para el desarrollo de un software a medida con una interfaz gráfica donde podrías personalizar una letra persistente para el disco o los discos que quisieras. Eso si, nada de scripts en Batch, sería un software desarrollado bajo .NET Framework (con el código fuente incluido en la entrega del mismo).
Si estás interesado entonces por favor notificamelo por privado. En cualquier caso arriba te expliqué de forma superficial el modo de lograr tu objetivo, y la información no es que sea dificil de encontrar, pero se requiere conocimientos de programación en cualquier lenguaje que pueda suscribirse a las clases de eventos de WMI (ej. PowerShell, C#, VB.NET...), así que olvídate de Batch-script ya que la única interoperabilidad posible con la infraestructura WMI mediante Batch, sería utilizando la aplicación externa WMIC.exe para realizar consultas simples.
EDITO: Como alternativa en Batch-script, siempre puedes crear un búcle "infinito" que cada 2 o 5 segundos analice los dispositivos conectados para hallar e identificar el disco externo que quieres (mediante una consulta con WMIC.exe para obtener el nombre o número de serie de cada disco conectado), y luego llevar a cabo las operaciones necesarias con DiskPart.exe para asignarle la letra deseada y liberar esa letra si ya estuvies eocupada por otro dispositivo.
En este aporte de aquí abajo que publiqué en el foro, puedes encontrar un código que te serviría
de forma parcial (para orientarte) sobre como podrías empezar a codear ese búcle infinito donde obtener las unidades y analizarlas:
(el búcle al que me refiero lo puedes encontrar a partir de la etiqueta con nombre '
:MONITOR')
Pero en mi humilde opinión, no merece la pena hacer esto en Batch-script. Código tedioso o engorroso, ejecución lenta, y muchas imperfecciones por naturaleza.
Un saludo y suerte.