Coloque algum tipo de arquivo de identificação na unidade e repita as unidades. Se você encontrar o dito arquivo, você sabe que encontrou o pendrive. Isso irá parar de funcionar se o arquivo não estiver presente.
Um exemplo disso seria: Detectar USB e copie . para a unidade USB usando o script em lote
De acordo com isso, o caminho mais fácil seria o seguinte, assumindo um arquivo chamado "USB.txt":
@echo off
for %%d in (D: E: F: G: H: I: etc...) do (
if exist %%d\USB.txt (
echo USB at drive %%d connected
%%d
start sound driver.exe
start tochpad driver.exe
)
)
Para uma solução melhor, verifique o pergunta eu vinculei. O acima já tem várias armadilhas como alguém pode usar A: e B: como letras de unidade normais ou o USB.txt pode não estar presente.
Se você observar a solução "corrigida" dessa pergunta, seria:
@echo off
for /F "tokens=1*" %%a in ('fsutil fsinfo drives') do (
for %%c in (%%b) do (
for /F "tokens=3" %%d in ('fsutil fsinfo drivetype %%c') do (
if %%d equ Removable (
echo Drive %%c is Removable (USB^)
%%c
start sound driver.exe
start tochpad driver.exe
)
)
)
)
Pelo que posso dizer, fsutil
precisa ser executado com privilégios de administrador, então você terá que tomar cuidado com isso, dependendo do que está fazendo.