¿Como ver la etiqueta de una USB con un script bat?

Tengo el siguiente código:

@echo off
:Inicio
Cls
for %%_ in (a, b, d, f, g, h, i, j, k, l, m, n, o, p, q, s, t, u, v, w, x, y, z) do (
        dir /b %%_:\ > nul 2>&1 && (
            echo Unidad "%%_:"\ detectada
goto inicio
        )
)
>Nul (pause)
exit /b 0

Pero al ejecutarlo solo me muestra:

Unidad h:\ detectada

Pero quisiera saber si es posible que me mostrara el nombre de la USB por ejemplo:

Unidad h:\ "USB 8GB" detectada

1 respuesta

Respuesta
1

Prueba con esto:

@echo off
:Inicio
Cls
for %%_ in (a, b, d, f, g, h, i, j, k, l, m, n, o, p, q, s, t, u, v, w, x, y, z) do (
        dir /b %%_:\ > nul 2>&1 && (
            for /f "tokens=8*" %%a in ('dir %%_:\*.kkk 2^>1^|find "volumen de la unidad"') do (
               echo Unidad %%_:\ "%%a" detectada
            )
        )
)
>Nul (pause)
exit /b 0

He quitado el goto inicio del bucle porque se quedaba permanentemente ahí. Supongo que era un error. No me acaba de gustar el tener que usar otro FOR para el nombre del volumen pero no he conseguido entender como se puede con el FINDSTR simular el "cut" de UNIX/Linux, que creo que hubiera simplificado el asunto. La extensión "kkk" la he puesto para forzar que el DIR de la unidad no dé ningún archivo y así el FIND tiene que trabajar menos.

Ya me dirás si funciona a tu gusto. Si no fuera así dilo también y vemos si se puede arreglar.

Excelente es lo que necesitaba, solo que al ejecutarlo se crea un archivo con el nombre 1, si se pudiera eliminar eso seria perfecto. 

Es verdad. Intentaba poner dir %%_:\*.kkk 2^>&1 pero no me lo admitía. Le quité el & y no caí en la cuenta de que le estaba diciendo que la salida de error la grabara en un archivo de nombre "1". Cambia el "1" por "nul" y creo que funcionará correctamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas