Obtener letra de unidad extraible BATCH

Iniciado por daniel.r.23, 21 Marzo 2013, 16:12 PM

0 Miembros y 2 Visitantes están viendo este tema.

daniel.r.23

Buenas, buscando en la web encontre un par de comandos que me dicen de que tipo es una unidad el cód es este:


@ECHO OFF

FOR %%A IN (D E F G H I J K L M N O P Q R S T U V W X Y Z) DO CALL :COMP %%A

:COMP
SET UNIDAD=%1
PAUSE
FSUTIL FSINFO DRIVETYPE "%UNIDAD%:" > tipounidad.txt


el tema es que el comando FSUTIL solo me deja usarlo si soy administrador, cosa que no soy y no puedo serlo!!
Como yo puedo obtener la letra de uniadad de mi pendrive partiendo del nombre.
Se que atravez de el registro de windows se puede pero no recuerdo como!,  hace mucho hice un batch que respaldaba la info ni bien lo conectaba pero perdi el cód, si me pueden orientar mejor gracias.

Solucionado con este mini cód:

%~d0

ya que el .bat lo tengo que ejecutar yo mismo ese me devuleve la ubicación de donde lo estoy ejecutando, el problema ahora es que nesecito agregar una variable de entorno a windows para que cuando se cierre el .bat continúe esa variable.
Ideas??

Eleкtro

#1
Puedes setear una variable de entorno con el comando SETX:
SETX Variable Valor

Pero debes tener en cuenta que, las variables de entorno agregadas desde una instancia de la CMD no se pueden reconocer en esa misma instancia.

Es decir, si haces esto:

1. Abrir la CMD
2. Setear variable de entorno
3. Cerrar La CMD
4. Reabrir la CMD
5. Comprobar la variable de entorno

Todo perfecto, pero si haces esto otro:

1. Abrir la CMD
2. Setear variable de entorno
3. Comprobar la variable de entorno

Entonces no podrás.

PD: Para lo del búcle puedes usar tanto FSUTIL como WMIC, pero me parece que este otro también necesita permisos de Admin.

EDITO: PD2: Y si no te importa utilizar aplicaciones de terceros, puedes usar PSInfo que no necesita permisos.

Saludos








daniel.r.23

esta muy buena tu idea si el SO fuera windows 7 pero en XP no me funciona ese comando, pero
de todas formas por medio del programita regshot logre ver que parte del registro se modificaba al ingresar la variable y exporte la clave, y bue la adapte a mi necesidad.
Acá el cód:

set letra=%~d0
reg add HKU\S-1-5-21-1957994488-1972579041-1801674531-500\Environment /v MIUNIDAD /t REG_SZ /d %letra%
pause


Este fragemento de ruta: ..\S-1-5-21-1957994488-1972579041-1801674531-500\.. es diferente en cada SO!, en mi pc es esa la ruta y en mi trabajo es esta por ej:
..\S-1-5-21-3283865553-3909256667-1845410349-1004\..

Martin-Ph03n1X

una respuesta simple pero puede servir si se tiene dskpart puedes suar la opcion DISKPART> list disk
DISKPART> assign
  No eres tu trabajo, no eres cuanto tienes en el banco, no eres el auto que conduces, ni el contenido en tu billetera, no eres tus malditos cakis, eres el bailarin cantante del mundo...!!!"

Eleкtro

Cita de: daniel.r.23 en 22 Marzo 2013, 03:32 AM
Este fragemento de ruta: ..\S-1-5-21-1957994488-1972579041-1801674531-500\.. es diferente en cada SO!, en mi pc es esa la ruta y en mi trabajo es esta por ej:
..\S-1-5-21-3283865553-3909256667-1845410349-1004\..

Claro, porque eso es el identificador único de seguridad del usuario (SID).

Los cambios debes hacerlo en la rama "Hkey_Current_User" o en "HKey_Local_Machine", en la primera raíz las modificaciones que hagas son las que se aplican automáticamente a tu SID (es decir, a tu usuario), y la segunda raíz es global, es decir se aplican a todos los usuarios.

[HKEY_CURRENT_USER\Environment]
"Variable"="Valor"


Saludos