Detectar correctamente unidad de un pendrive

Iniciado por lucaslopezld123, 23 Diciembre 2012, 19:22 PM

0 Miembros y 1 Visitante están viendo este tema.

lucaslopezld123

Buen dia Segadorfelix! no se si corresponde en este foro, pero ya que estuviste viendo el codigo de arriba te queria preguntar.
el diguiente pedacito del codigo es para determinar en que unidad se ecuentra mi pendrive

codigo:
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist "%%i:\INS\NINFUS" set "DRIVE=%%i:")

anda muy bien, solo que si dejo una compactera abierta o hay una lectora de multimemoria, me tira el error "unidad no esta lista" o algo asi. doy enter y luego sigue.
Con el uso de 2>nul se puede omitir ese error o hay algun otro metodo de deteccion?
190.8.59.170
Segadorfelix

Conectado

Mensajes: 81




 
   Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #231 en: Hoy a las 15:13 »

Pues, lucaslopezld123 creo que se puede, pero me parece mas adecuado utilizar este metodo, oculta cualquier tipo de salida

Código:
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist "%%i:\INS\NINFUS" set "DRIVE=%%i:")>NUL 2>&1
Saludos

lucaslopezld123

probe con
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist "%%i:\INS\NINFUS" set "DRIVE=%%i:")>NUL 2>&1

pero con la compactera abierta dice "No hay disco en la unidad, Inserte un disco en la unidad"

alguna otra forma de hacerlo?
necesito detectar cual es la letra de unidad de mi pendrive independientemente si las compateras estan abiertas o hay lectores de multimemorias vacios

Segadorfelix

Cita de: lucaslopezld123 en 23 Diciembre 2012, 19:25 PM
probe con
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist "%%i:\INS\NINFUS" set "DRIVE=%%i:")>NUL 2>&1

pero con la compactera abierta dice "No hay disco en la unidad, Inserte un disco en la unidad"

alguna otra forma de hacerlo?
necesito detectar cual es la letra de unidad de mi pendrive independientemente si las compateras estan abiertas o hay lectores de multimemorias vacios
prueba
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist "%%i:\INS\NINFUS" set "DRIVE=%%i:">NUL 2>&1)Aunque no se si funcione(no tengo disquetera para probar).

lucaslopezld123

chan! falla
sino algun otro metodo para detectar cual es la letra de mi unidad de pendrive, o sea que solo liste las unidades activas y luego las compare para ver si coinciden y de esa manera determine la unidad correcta evitando errores
como seria un codigo asi?

Segadorfelix


lucaslopezld123

si abris la compactera  lo podes probar facilmente, ahora mismo estoy haciendo eso pero no hay caso con los >null no sale...

lucaslopezld123

asi tampoco..... le di vuelta el orden de las letras pensando que si buscaba al reves tengo mas chances ya que el pendrive siempre se ubica ultimo en la lista de unidades

for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (if exist "%%i:\INS\NINFUS" set "DRIVE=%%i:")

Segadorfelix

Revisa el valor de errorlevel después del error.
Así
echo %errorlevel%
para omitir el error se podría hacer esto:
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (if exist "%%i:\INS\NINFUS" echo D | set "DRIVE=%%i:")
No se si funcione.

lucaslopezld123


Segadorfelix

este script
for %%i in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (if exist "%%i:\INS\NINFUS" echo D | set "DRIVE=%%i:")
Funciona o no?