Detector unidades Pendrive 5.0c

Iniciado por carlitos.dll, 30 Junio 2008, 03:49 AM

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

carlitos.dll

Corregí dos líneas. Finalmente dejé la versión 1.0 en la primera página de este post.

SmartGenius

oye carlitos.dll.... yo habia hecho un code para eso en CM, lo sacaste de alli ??

@echo off
title Examinador de Unidades
color 0a

:main
cls
echo.
echo Introduzca la Letra de Unidad
echo.
set /p uni="> "
FSUTIL FSINFO DRIVETYPE %uni%:>%temp%\letuni.tmf
for /F "tokens=*" %%a in (%temp%\letuni.tmf) do set p=%%a
if %p:~-4%==ija (goto fija)
if %p:~-4%==ble (goto USB)
if %p:~-4%==ROM (goto CD) else (goto main)

:USB
echo.
echo La unidad es Extraible
pause
exit

:fija
echo La unidad es una Unidad de Disco Duro
echo.
pause
exit

:CD
echo.
echo La unidad es una CD-ROM
echo.
pause
exit


de ahi en adelante se podria hacer algo para hacer mas efectiva la propagacion por USB...

Saludos.


carlitos.dll

Mi code funciona en cuenta limitada, y ese code puse más arriba que es similar al tuyo, lo saqué de d o s t i p s . c o m
Mi code pretende ser una roca como BSD :D
(Está  en la primera página del post)

SmartGenius

ah ok men... no hay problema...

Lo bueno es que funcione en una cuenta limitada, para poder realizar algo mas efectivo...

Saludos.


carlitos.dll

#24
Más adelante está la versión 3.3.
------------------


::Detector de unidades removibles
::v2.0 by CarlitoS.dll

@echo off
reg.exe export HKLM\SYSTEM\MountedDevices "%tmp%\dev.dat" >nul

set /a non=1
echo LAS UNIDADES REMOVIBLES ACTUALES SON:
for /f "tokens=1 delims==" %%a in ('type "%tmp%\dev.dat" ^| find /i "\\DosDevices\\" ^| sort ^| find /i "53,00,54,00,4f,00,52,00,41"') do call :fil %%a
if %non%==1 (echo Ninguna)

pause
exit

:fil
set dr=%*
set dr=%dr:~-3,1%
call :lab %dr%
goto :eof

:lab
if exist %1:\ (echo %1 & set /a non=0)
goto :eof



sirdarckcat

No crees que estó es redundante?

reg.exe export HKLM\SYSTEM\MountedDevices "%tmp%\dev.dat" >nul
type "%tmp%\dev.dat"

Hay un handler de archivo virtual a la salida stdout.. :con es para la consola.. si te permite leer y escribir talvez puedas  redirigir el export a stdout y así solo pipe'ar la salida..

carlitos.dll

#26
En la siguiente página está la versión 3.4 que es la mejor


:: DETECTOR DE UNIDADES REMOVIBLES
:: v3.3
:: $author CarlitoS.dll

@echo off

set /a non=1
echo LAS UNIDADES REMOVIBLES ACTUALES SON:
for /f "tokens=1 delims=:" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find /i "530054004F00520041"') do call :fil %%a
if %non%==1 (echo Ninguna)

pause
exit

:fil
set dr=%*
set dr=%dr:~-1%
call :lab %dr%
goto :eof

:lab
if exist %1:\ (echo %1 & set /a non=0)
goto :eof


carlitos.dll

Pido disculpas por tantas modificaciones, pero es que luego de un rato se me ocurré otra cosa, y me digo: podría escribir esto para que quedara más rápido.
La versión 3.3 la dejo como versión final, no creo que le haga más modificaciones, pienso que quedó óptimo ese code, y lo más importante es que se puede utilizar bajo cuenta limitada, pues no llama a diskpart o fsutil.

Novlucker

Bueno, lo he probado y no hay quejas  ;D, te ha quedado muy bien.. y sobre todo porque este último code es la tercera parte de largo, de lo que era el primero que publicaste  :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

carlitos.dll

#29
Gracias novlucker.

Bueno, ahora una vez termine de leer todas las páginas de manual de los comandos de batch, se viene korn shell (me decidí por este, en vez de perl o python) quiero Unix  :P
No sabré todo de batch, pero ya es suficiente para mi.