Autor
|
Tema: Detector unidades Pendrive 5.0c (Leído 29,927 veces)
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
Que tal una 3.4? Borrando.. set /a non=1 & set /a non=0 y cambiando: por Saludos!!
|
|
|
En línea
|
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Muchas gracias sirdarkcat. Es increíble que lo que hacía en 40 líneas, se haga en 10. :: DETECTOR DE UNIDADES REMOVIBLES v3.4 :: $author CarlitoS.dll
@echo off
echo Unidades removibles montadas: for /f "tokens=1 delims=:" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find /i "530054004F00520041"') do call :fil %%a pause & exit
:fil set dr=%* call :lab %dr:~-1% goto :eof
:lab if exist %1:\ (echo %1) else if not %1==0 (echo Ninguna) goto :eof
|
|
|
En línea
|
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
9, el último goto:eof no es realmente necesario..
|
|
|
En línea
|
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
::DETECTOR OF REMOVABLE DEVICES [V3.6] author CarlitoS.dll @echo off & echo Mounted removable devices: for /f "tokens=1 delims=:" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find "530054004F00520041"') do call :fil %%a pause>NUL & exit :fil set dr=%* set dr=%dr:~-1% if exist %dr%:\ (echo %dr%) & goto :eof
|
|
|
En línea
|
|
|
|
sirdarckcat
Aspirante a supervillano
Colaborador
Desconectado
Mensajes: 7.029
No estoy loco, soy mentalmente divergente
|
esto deberia funcionar, y queda una linea :S @for /f "tokens=1 delims=:" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find "530054004F00520041"' ) do if exist %%a:~-1 %%:\ (echo %%a%%)
|
|
|
En línea
|
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Aquí lo dejo en una línea. Si se borran los saltos de línea queda en una línea. Gracias sirdarckcat por obligarme a exigirme más. Ahora quedó mucho mejor. ::DETECTOR OF REMOVABLE DEVICES [V4.0] author CarlitoS.dll
@echo off & ( for /f "tokens=1" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find "530054004F00520041"') do ( for /f "tokens=2 delims=\" %%b in ("%%a") do (if exist %%b\ (echo %%b))) ) & pause
|
|
« Última modificación: 24 Julio 2008, 01:03 am por carlitos.dll »
|
En línea
|
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Ahora acabo de descubrir que se pueden añadir más delimitadores en el for. Así es que ahora quedó más corto todavía. ::DETECTOR OF REMOVABLE DEVICES [V4.1] author CarlitoS.dll @echo off & ( for /f "tokens=3 delims=\:" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find "530054004F00520041"') do ( if exist %%a:\ (echo %%a)) ) & pause
|
|
|
En línea
|
|
|
|
morenochico
Desconectado
Mensajes: 171
|
Felicidades chicos quedo muy bien, sigan asi.
|
|
|
En línea
|
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
Dejo la versión 5.0c Final En este mismo post publiqué la versión 5.0 pero la versión 5.0c tiene un cambio: Esto, me lo corrigió Rob van der Woude if exist %%a:\ (echo %%a) dir /a %%a:\ >NUL 2>&1 && echo.%%a:
|
|
« Última modificación: 26 Julio 2008, 20:11 pm por carlitos.dll »
|
En línea
|
|
|
|
carlitos.dll
Desconectado
Mensajes: 266
|
::DETECTOR OF REMOVABLE DEVICES [V5.0c Final] author CarlitoS.dll ::carlitosdll.blogspot.com ::Tested in Windows 2000 and XP. Not works in Windows 98 and Me.
@echo off if "%errorlevel%"=="" goto other
echo Mounted removable devices detected echo ----------------------------------
ver | findstr "2000 NT" >NUL && goto NT2000
:XPVISTASEVEN for /f "tokens=3 delims=\:" %%a in ('reg query HKLM\SYSTEM\MountedDevices ^| find "530054004F00520041"') do ( dir /a %%a:\ >NUL 2>&1 && echo.%%a:) pause goto :eof
:NT2000 regedit /e "%temp%\devices.dat" "HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices" for /f "tokens=3 delims=\:" %%a in ('find /i "DosDevices" ^< "%temp%\devices.dat" ^| find /i "53,00,54,00,4f,00,52,00,41"') do ( dir /a %%a:\ >NUL 2>&1 && echo.%%a:) del /f /q "%temp%\devices.dat" >NUL pause goto :eof
:other echo Current batch is not supported in this Operating System version. exit
|
|
« Última modificación: 26 Julio 2008, 19:59 pm por carlitos.dll »
|
En línea
|
|
|
|
|
|