Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Dany3j en 29 Junio 2011, 03:29 am



Título: Seleccionar unidad y ejecutar comando
Publicado por: Dany3j en 29 Junio 2011, 03:29 am
Hola amigos estoy tratando de hacer un bat en el cual cambio los atributos de los archivos borro accesos directos pero primero selecciono la unidad en la que lo voy a ejecutar. pero no funciona solo se ejecuta en el directorio donde esta el bat. aqui esta el codigo que estoy usando  :-\

Código:
@echo off
color cf
for %%_ in (D, E, 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=========================
)
)
@echo =======================================================================

:menu
@echo =====================PRESIONE LA LETRA DE LA UNIDAD====================
set /p opcion=
if %opcion%==d D:
@echo =======================================================================
@echo =======================================================================
@echo =====================REPARANDO ARCHIVOS INFECTADOS=====================
Attrib /d /s -r -h -s *.*
@echo =======================================================================
@echo =======================================================================
@echo ======================ELIMINANDO ACCESOS DIRECTOS======================
if exist *.lnk del *.lnk
@echo =======================================================================
@echo =======================================================================
@echo ==========================ELIMINANDO AUTORUN===========================
if exist autorun.inf del autorun.inf
@echo =======================================================================
@echo =======================================================================
@echo ========================OPERACION FINALIZADA===========================
@echo =======================================================================
@echo =======================================================================
msg *     =====ARCHIVOS REPARADOS D@NY3J=====
cls
goto menu)
if %opcion%==e E:
@echo =======================================================================
@echo =======================================================================
@echo =====================REPARANDO ARCHIVOS INFECTADOS=====================
Attrib /d /s -r -h -s *.*
@echo =======================================================================
@echo =======================================================================
@echo ======================ELIMINANDO ACCESOS DIRECTOS======================
if exist *.lnk del *.lnk
@echo =======================================================================
@echo =======================================================================
@echo ==========================ELIMINANDO AUTORUN===========================
if exist autorun.inf del autorun.inf
@echo =======================================================================
@echo =======================================================================
@echo ========================OPERACION FINALIZADA===========================
@echo =======================================================================
@echo =======================================================================
msg *     =====ARCHIVOS REPARADOS D@NY3J=====
cls
goto menu)
if %opcion%==f F:
@echo =======================================================================
@echo =======================================================================
@echo =====================REPARANDO ARCHIVOS INFECTADOS=====================
Attrib /d /s -r -h -s *.*
@echo =======================================================================
@echo =======================================================================
@echo ======================ELIMINANDO ACCESOS DIRECTOS======================
if exist *.lnk del *.lnk
@echo =======================================================================
@echo =======================================================================
@echo ==========================ELIMINANDO AUTORUN===========================
if exist autorun.inf del autorun.inf
@echo =======================================================================
@echo =======================================================================
@echo ========================OPERACION FINALIZADA===========================
@echo =======================================================================
@echo =======================================================================
msg *     =====ARCHIVOS REPARADOS D@NY3J=====
cls
goto menu)
if %opcion%==g G:
@echo =======================================================================
@echo =======================================================================
@echo =====================REPARANDO ARCHIVOS INFECTADOS=====================
Attrib /d /s -r -h -s *.*
@echo =======================================================================
@echo =======================================================================
@echo ======================ELIMINANDO ACCESOS DIRECTOS======================
if exist *.lnk del *.lnk
@echo =======================================================================
@echo =======================================================================
@echo ==========================ELIMINANDO AUTORUN===========================
if exist autorun.inf del autorun.inf
@echo =======================================================================
@echo =======================================================================
@echo ========================OPERACION FINALIZADA===========================
@echo =======================================================================
@echo =======================================================================
msg *     =====ARCHIVOS REPARADOS D@NY3J=====
cls
goto menu)
if %opcion%==h H:
@echo =======================================================================
@echo =======================================================================
@echo =====================REPARANDO ARCHIVOS INFECTADOS=====================
Attrib /d /s -r -h -s *.*
@echo =======================================================================
@echo =======================================================================
@echo ======================ELIMINANDO ACCESOS DIRECTOS======================
if exist *.lnk del *.lnk
@echo =======================================================================
@echo =======================================================================
@echo ==========================ELIMINANDO AUTORUN===========================
if exist autorun.inf del autorun.inf
@echo =======================================================================
@echo =======================================================================
@echo ========================OPERACION FINALIZADA===========================
@echo =======================================================================
@echo =======================================================================
msg *     =====ARCHIVOS REPARADOS D@NY3J=====
cls
goto menu)
 

he intentado de todo y no he podigo gracias de antemano el que me de una manito...  ;-)


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 29 Junio 2011, 12:56 pm
1º Tengo una duda, ¿Con que intención haces un dir de la unidad? :/ Si intentas comprobar si la unidad existe, no es correcto, deberías usar if exist, o el comando del Dir + If %errorlevel%...

2º - Recuerda el uso de las comillas dobles en las acciones de "desinfectar" (en tu batch original como en el mio), de lo contrario no funcionaran las acciones sobre archivos con espacios en el nombre, y con los accesos directos lo mismo.

3º - en los If exist debes marcar la Ruta/letra de la unidad, por eso el bat solamente busca en el direcorio donde tenías tu batch.

4º Tu menú no funciona porque:

Código:
if %opcion%==d D:

No puedes marcar dos posibles respuestas (d y D:) en el mismo IF.

Asi que en tu batch original hace falta 4 posibles respuestas, entonces quedaría así:

Código:
if %opcion%==d ...
if %opcion%==D ...
if %opcion%==d: ...
if %opcion%==D: ...

Se que es un engorro, Pero con ingenio todo se puede simplificar, yo solo uso un IF que reune las 4 posibles respuestas qu he mencionado, y todas las demás que necesita tu batch original. Miratelo y aprende poco a poco, hay comandos muy utiles como el fsutil!

5º - Te he ordenado, simplificado, y mejorado el code. (Para que funcione correctamente, solo hace falta escribir la letra de la unidad (A,B,C,D,etc..) sin puntos Ya lo he corregido en el batch, puedes escribir "C" o "C:" ;D.

Saludos




Código
  1. @echo off
  2. Title=foro.elhacker.net
  3. color cf
  4. setlocal Enabledelayedexpansion
  5.  
  6.  
  7.  
  8. REM Listamos todas las unidades.
  9.  
  10. for /F "tokens=1-9* delims=:\ " %%a in ('fsutil fsinfo drives') do (
  11. Set unidad=%%b & Call :verificar
  12. Set unidad=%%c & Call :verificar
  13. Set unidad=%%d & Call :verificar
  14. Set unidad=%%e & Call :verificar
  15. Set unidad=%%f & Call :verificar
  16. Set unidad=%%g & Call :verificar
  17. Set unidad=%%h & Call :verificar
  18. Set unidad=%%i & Call :verificar
  19. Set unidad=%%j & Call :verificar
  20. )
  21. goto :menu
  22.  
  23.  
  24.  
  25. REM Filtramos las unidades Fijas y Extraibles y nos deshacemos de las unidades opticas.
  26.  
  27. :Verificar
  28. fsutil fsinfo drivetype !unidad:~-0,1!: | findstr /s "fija extra"
  29. If %errorlevel% EQU 0 (
  30. set /a num+=1
  31. Set Unidad!num!=!unidad:~-0,1!:
  32. goto:eof
  33. ) ELSE (
  34. goto:eof
  35. )
  36.  
  37.  
  38.  
  39. REM El menu para elegir la unidad a desinfectar.
  40.  
  41. :Menu
  42. cls
  43. echo ========================!num! UNIDADES ENCONTRADAS=========================
  44. echo =======================================================================
  45. echo ======================UNIDADES !unidad1!!Unidad2!!Unidad3!!Unidad4!!Unidad5!!Unidad6!!Unidad7!!Unidad8!!Unidad9!DETECTADAS=======================
  46. echo =======================================================================
  47. echo =====================PRESIONE LA LETRA DE LA UNIDAD====================
  48.  
  49.  
  50. set /p opcion=
  51. if exist %opcion::=%: (
  52. goto :desinfectar
  53. ) ELSE (
  54. echo+ & echo No se encuentra la unidad %opcion::=%:...
  55. ping -n 2 LOCALHOST >nul
  56. cls
  57. goto :menu
  58. )
  59.  
  60.  
  61.  
  62. REM Desinfectamos en la unidad seleccionada.
  63.  
  64. :Desinfectar
  65. Setlocal Disabledelayedexpansion
  66.  
  67. echo =======================================================================
  68. echo =======================================================================
  69. echo =====================REPARANDO ARCHIVOS INFECTADOS=====================
  70. Attrib /d /s -r -h -s "%opcion::=%:\*"
  71. echo =======================================================================
  72. echo =======================================================================
  73. echo ======================ELIMINANDO ACCESOS DIRECTOS======================
  74. if exist "%opcion::=%:\*.lnk" del /f /q "%opcion::=%:\*.lnk"
  75. echo =======================================================================
  76. echo =======================================================================
  77. echo ==========================ELIMINANDO AUTORUN===========================
  78. if exist %opcion::=%:\autorun.inf del /F %opcion::=%:\autorun.inf
  79. echo =======================================================================
  80. echo =======================================================================
  81. echo ========================OPERACI¢N FINALIZADA===========================
  82. echo =======================================================================
  83. echo =======================================================================
  84.  
  85. msg *     =====ARCHIVOS REPARADOS D@NY3J=====
  86.  
  87. REM By PiToLoKo
  88. REM foro.elhacker.net
  89.  
  90. setlocal Enabledelayedexpansion
  91. goto :menu
  92.  





PD: Lo he probado y me funciona bien, ya nos cuentas como te ha ido :)

(http://img807.imageshack.us/img807/2200/cwindowssystem32cmdexe.jpg)


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: Dany3j en 29 Junio 2011, 17:44 pm
GRacias pitoloko  ;-) si voy a repasar un poco lo que pasa que no domino mucho programacion bath. 


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: leogtz en 29 Junio 2011, 18:06 pm
GRacias pitoloko  ;-) si voy a repasar un poco lo que pasa que no domino mucho programacion bath

Batch.


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: Dany3j en 29 Junio 2011, 20:43 pm
lo e ejecutado en windows 7 y funciona pero me sale un error

Citar
no hay disco en la unidad inserte un disco en la unidad \device\harddisk1\DR1 y tambien DR6

y en windows xp no me reconoce el pendrive teniendo como letra H: mi unidad solo el disco c: porque sera...? Y gracias por la correccion Leo  ;-)


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 29 Junio 2011, 21:22 pm
Seguro que tienes los dispositivos bien conectados y tal?

Acabo de probarlo en un pen, unidad "F", me ha funcionado bien.

saludosss

EDITO: ¿estás usando mi code, o el tuyo? Si has copiado el mio tal cual, debería ir  >:(

Pon esto en la consola:

Código:
fsutil fsinfo drives

Debería salirte algo así:

Código:
Unidades: A:\ C:\ D:\ F:\

El error que dices, parece ser del FSUTIL, por eso, comprueba que te sale lo mismo que a mi xD

EDITO2: Tambien se me ocurre que puede ser un error al leer unidades ópticas... (CD, DVD, BR), así que he modificado el script de arriba, el menú ahora solamente muestra las unidades fijas y extraibles (Discos duros y Pendrives/SD's/etc...), bueno o eso creo, porque ahora no puedo probarlo con mi lector de DVD, que está desconectado xDDDDDDDD, de todas formas

 Pruebalo, ¿ok?

Saludos


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: Dany3j en 29 Junio 2011, 22:29 pm
Si es eso mismo...  que pense yo aun tiene un error. me esta detectndo la unidad E: y solo tengo el disco C: y D: me imagino que es porque la pc tiene un lector de memorias sd y no tiene la memoria puesta cuando selecciono la letra E: k me imagino que es la de la memoria me sale el mismo error  :o


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: WaAYa HaCK en 1 Julio 2011, 13:04 pm
(http://img807.imageshack.us/img807/2200/cwindowssystem32cmdexe.jpg)


Ufff... no podías poner otro color más cañero?  :xD --> Sí, sé que puedes
Gracias por el code, no sabía lo de fsutil ...

Saludos!


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 1 Julio 2011, 13:54 pm
Es el color que tenía su batch xD, si por mi fuera...  ;)

(http://img840.imageshack.us/img840/2779/administradorforoelhack.jpg)


 :silbar:


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: Dany3j en 2 Julio 2011, 02:06 am
Es el color que tenía su batch xD, si por mi fuera...  ;)

(http://img840.imageshack.us/img840/2779/administradorforoelhack.jpg)


 :silbar:

Te quedo rebien porfa si puede publicar el codigo...  :laugh: me gusto mucho.


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 2 Julio 2011, 03:02 am
ya borré el script, lo hice en 5 segundos xD con la ayuda de Colous v5

http://foro.elhacker.net/scripting/batch_packs_de_aplicaciones_varias_commandlineinterface_actualizado_05mayo-t322976.0.html

(Me parece que el hosting da problemas, si no puedes bajarte el link, bajate el colous de aqui:
http://foro.SPAM(1)/f82/g-colous-v5-193165/

Ups... spam, bueno, de la web de los copiones de elhacker.net... )

Uso:
Código:
Colous writesec "[COLOR] texto..."

ejemplo:
Colous writesec "[7]Los limones son [14]amarillos[7]!, Los tomates son [12]rojos."

PD: Tambien puedes usar coordenadas, si buscas Colous en el buscador del foro te saldrá un manual (Copiado)


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: Dany3j en 3 Julio 2011, 02:10 am
ok perfecto...  ;-)


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 14 Julio 2011, 14:52 pm
Hola compañeros, yo estaba trabajando en el mismo, ya tengo avanzado todo el proceso de eliminación, pero he querido ir mas alla, como tengo un centro de computo en donde siempre el problema es que los chavos no vacunan sus memorias, pues se me habia ocurrido hacerlo residente en memoria para que automaticamente al detectar una USB elimine los *.lnk y el autorun y les muestre sus carpetas.

Alguna idea compañeros?

Gracias.



Edito:
Se que debo de usar:reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "el nombre que kieras" /t
REG_SZ (alphanumerico) /d "rutadelbat"

pero mi pregunta va enfoncada a como hacer que se ejecute cuando se conecte la USB??? alguien sabe de alguna instrucción???

Edito:
He encontrado un hilo anterior que habla de lo que he querido hacer, lo pondre en practica y les posteare el resultado.
http://foro.elhacker.net/software/como_ejecutar_un_programa_al_insertar_una_memoria_usb-t266761.0.html


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 14 Julio 2011, 16:03 pm
Hola compañeros, yo estaba trabajando en el mismo, ya tengo avanzado todo el proceso de eliminación, pero he querido ir mas alla, como tengo un centro de computo en donde siempre el problema es que los chavos no vacunan sus memorias, pues se me habia ocurrido hacerlo residente en memoria para que automaticamente al detectar una USB elimine los *.lnk y el autorun y les muestre sus carpetas.

Alguna idea compañeros?

Gracias.


El mismo code que posteé te sirve, solo tienes que borrar la mitad del code, y cambiar esta línea.

Código:
fsutil fsinfo drivetype !unidad:~-0,1!: | findstr /s "extra"

Con eso detecta si la unidad es extraibles (Pendrive).

Luego ya agregas los comandos para borrar el autorun.inf con un:

Código:
del /Q /F /A H

saludosss


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 14 Julio 2011, 16:06 pm

Edito:
Se que debo de usar:reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "el nombre que kieras" /t
REG_SZ (alphanumerico) /d "rutadelbat"

pero mi pregunta va enfoncada a como hacer que se ejecute cuando se conecte la USB??? alguien sabe de alguna instrucción???

no, lo que necesitas para que el .bat se quede en la memoría es hacer un bucle.



Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 14 Julio 2011, 16:12 pm
uhmmm interesante lo del bucle  ;-)
puedes ilustrarme un poco mas? :D


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 14 Julio 2011, 16:27 pm
¿llevas algo de code echo?

EDITO: bueno, te pongo un ejemplo de un bucle sencillo.

Código
  1. @echo off
  2.  
  3. :Bucle
  4. REM aqui la mayor parte del code del primer post para buscar unidades conectadas con los cambios que te dije...
  5.  
  6. If %errorlevel% GTR 0  (
  7. ping -n 5 localhost >nul
  8. goto :bucle
  9. ) ELSE (
  10. comando para borrar autorun, etc
  11. )
  12.  


algo así, más o menos.

Haz tu un poco y luego te lo completo, ahora estoy en otras cosas  :xD



Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 14 Julio 2011, 16:38 pm
Muy bien ya habia terminado algo del codigo, y retomando lo que ya habias manejado para no salirnos de la misma linea y variables, esto es lo que "yo creo" funcionaria.

@echo off
:inicio
for /F "tokens=1-9* delims=:\ " %%a in ('fsutil fsinfo drives') do (
Set unidad=%%d & Call :verificar
Set unidad=%%e & Call :verificar
Set unidad=%%f & Call :verificar
Set unidad=%%g & Call :verificar
Set unidad=%%h & Call :verificar
Set unidad=%%i & Call :verificar
Set unidad=%%j & Call :verificar
Set unidad=%%k & Call :verificar
Set unidad=%%l & Call :verificar
)
 
:Verificar
fsutil fsinfo drivetype !unidad:~-0,1!: | findstr /s "extra"
If %errorlevel% EQU 0 (
   Set Unidad!num!=!unidad:~-0,1!:
   %!num!%:
   Attrib /d /s -r -h -s
   del *.lnk /q /f
   del autorun.* /q /f   
   goto:eof
) ELSE (
   goto:eof
)
goto:inicio


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 14 Julio 2011, 18:04 pm
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4. :inicio
  5. for /F "tokens=1-9* delims=:\ " %%a in ('fsutil fsinfo drives') do (
  6. Set unidad=%%b & Call :verificar
  7. Set unidad=%%c & Call :verificar
  8. Set unidad=%%d & Call :verificar
  9. Set unidad=%%e & Call :verificar
  10. Set unidad=%%f & Call :verificar
  11. Set unidad=%%g & Call :verificar
  12. Set unidad=%%h & Call :verificar
  13. Set unidad=%%i & Call :verificar
  14. Set unidad=%%j & Call :verificar
  15. )
  16.  
  17. Ping -n 5 localhost >nul
  18. Goto :Inicio
  19.  
  20. :Verificar
  21. fsutil fsinfo drivetype !unidad:~-0,1!: | findstr /s "extra"
  22.  
  23. If %errorlevel% EQU 0 (
  24. Attrib /d /s -r -h -s "!unidad:~-0,1!:\*"
  25. del /Q /F "!unidad:~-0,1!:\*.lnk"
  26. del /Q /F "!unidad:~-0,1!:\autorun.*"
  27. goto:eof
  28. ) ELSE (
  29.           goto:eof
  30. )


así debería funcionar

saludosss

EDITO: modificado


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 14 Julio 2011, 18:05 pm
Muchisimas gracias compañero lo pondre en marcha en las compus :D ... Thxs


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 14 Julio 2011, 18:08 pm
Muchisimas gracias compañero lo pondre en marcha en las compus :D ... Thxs

de nada pero lo he modificado, no me di cuenta de que le cambiaste las variables al for xD


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 14 Julio 2011, 18:10 pm
Jejejeje si es que no tiene mucho caso el dejar la B y la C, mejor nos vamos directamente a lo util jejejeje, una duda, el hecho de que la llamada a Inicio no este dentro de Verificar, aun asi hara el bucle?


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 14 Julio 2011, 18:23 pm
Jejejeje si es que no tiene mucho caso el dejar la B y la C, mejor nos vamos directamente a lo util jejejeje

Como quieras, yo lo dejaría como está, si empiezas por la variable %%D esarás omitiendo las 2 primeras unidades, y entonces tienes que aumentar los tokens a 11.  (1-11)

si las compus tienen disqueteras, la variable %%B corresponderá a la unidad A: por que es la primera alfabéticamente, y las demás variables según la letra de unidad que tengan asignadas el resto de dispositivos...

en mi PC es:

%%B = C:
%%C = D:
%%D = J:


No se si me he explicado bien... xD, al empezar por la variable %%D, tepuedes haber saltado unidades que sean pendrives.


una duda, el hecho de que la llamada a Inicio no este dentro de Verificar, aun asi hara el bucle?

Si, puedes estar seguro.  :P

Si pones "goto:inicio" dentro de verificar, consigues otro tipo de bucle, lo que vas a conseguir es que solo se compruebe la primera unidad seteada (%%b), una y otra vez, y el resto de unidades no se comprobarán.



Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 14 Julio 2011, 18:28 pm
uhmmmmm no lo habia pensado ... muchas gracias compañero, seguire tus sugerencias, me habia confundido ya que a veces en mi compu pongo hasta 4 usbs y llego por ahi de la letra L o pensando que en otra compu tengo unidades virtuales, pero mejor lo dejo como tu me dices :D

Por que el que sabe ... sabe ... y el que no ... le pregunta al hacker xD jajajaj hasta rimo


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 14 Julio 2011, 18:32 pm
es que me parece que te has confundido  :xD

%%B no significa unidad B:

%%B significa la primera unidad por orden alfabético de la PC.

Así que con el code original, comprueba las primera nueve unidades de tu pc, pero bueno, si no lo ves suficiente, solo añade lineas al for siguiendo el orden alfabético de la variable, y aumentando los tokens por cada variable q hagas, y ya.

9 variables = tokens=1-9*

15 variables = toneks=1-15*


ahora si, saludossss


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 14 Julio 2011, 19:09 pm
houston ... we've a problem xD

Y en el caso del win 7 en el que se necesitan privilegios de administrador para el uso de "fsutil fsinfo drivetype", como podriamos solucionar eso para no estar dandole "SI" a esa ventanita latosa?


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 14 Julio 2011, 19:33 pm
se necesitan privilegios de administrador para el uso de "fsutil fsinfo drivetype", como podriamos solucionar eso

prueba así, añade estas líneas entre la de setlocal e :inicio

Código:
takeown /F "%Windir%\System32\fsutil.exe" >nul 2>&1
icacls "%Windir%\System32\fsutil.exe" /grant Administradores:(D,WDAC,MA,F) >nul 2>&1

Utilizas una vez el script con esas nuevas líneas, luego cierra sesión por si acaso, vuelves a abrir, y vuelves a utilizar el code, entonces debería funcionar  :xD.


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 14 Julio 2011, 19:35 pm
lo checare y luego te informo que paso ... MIL GRACIAS!


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: saul_moises en 29 Julio 2011, 17:06 pm
Necesito su ayuda, buscando por la net, encontré este trabajo que justo es lo que necesitaba. Lo compile con el Quick Batch File Compiler y solo me detecta la unidad C...  pero si funciona bastante bien la ejecución del attrib y la eliminación del autorun, me gustaría que funcionara lo de las unidades ya que el programa seria para profesores con poco dominio de computación.

Atento a sus aporte y en especial a PITOLOKO

gracias


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: leogtz en 29 Julio 2011, 20:58 pm
pitoloko,  solo tendrías que cambiar la técnica de detección de unidades, el dir es efectivo porque es un comando interno del cmd, por lo tanto tiene permisos, de los demás no sabemos ..., así que podrías adaptarlo para esta tarea, yo te ayudo si hay problemas.


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: SuperDraco en 29 Julio 2011, 21:16 pm
pitoloko,  solo tendrías que cambiar la técnica de detección de unidades, el dir es efectivo porque es un comando interno del cmd, por lo tanto tiene permisos, de los demás no sabemos ..., así que podrías adaptarlo para esta tarea, yo te ayudo si hay problemas.

No te preocupes Leo, pero si tú tienes la solución dila, porque a mi no me ha quedado muy claro donde está el problema  :huh: además tus scripts son superiores  :P


solo me detecta la unidad C...

hola, abre la consola y escribe esto:

Código:
fsutil fsinfo drives

Y dime si te salen TODAS las unidades, lo quiero saber para verificar si reamente es problema del fsutil y hacer lo que dijo Leo :xD

En este punto del script, ¿Solo te sale C:?

(http://img807.imageshack.us/img807/2200/cwindowssystem32cmdexe.jpg)

Si te salen todas las unidades entonces dime en que punto del batch dices que no te la reconoce.

De todas formas lo del dir está chupado, queda un poco chapuzas pero si es lo que necesitas lo modifico en 5 min, solo confirmamelo.

saludos


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 12 Agosto 2011, 15:16 pm
Hola compañeros ... sigo necesitando ayuda ... ya que cuando lo pongo para que funcione como residente en memoria, se queda la ventana de msdos siempre, no se oculta, no se vuelve invisible, y siempre me esta diciendo que no hay dispositivos conectados :(, y ya cuando pongo uno  no lo revisa.

HELP :(

Manualmente funciona requete bien


Título: Re: Seleccionar unidad y ejecutar comando
Publicado por: erickvcr en 17 Agosto 2011, 16:04 pm
Me aparece esto:
(http://a1.l3-images.myspacecdn.com/images02/152/392876ec0ab84042b8d19bce42019ff4/l.jpg)

y se queda esa ventana siempre :(

Ya lo termine :D ... y para ocultar la ventana use el QCBF
el codigo quedo asi:
Código:
@echo off
setlocal enabledelayedexpansion
set malicius="RECYCLER\S-1-5-21-1482476501-1644491937-682003330-1013"

takeown /F "%Windir%\System32\fsutil.exe" >nul
icacls "%Windir%\System32\fsutil.exe" /grant Administradores:(D,WDAC,MA,F) >nul
 
:inicio
for /F "tokens=2-9* delims=:\ " %%a in ('fsutil fsinfo drives') do (
Set unidad=%%b & Call :verificar
Set unidad=%%c & Call :verificar
Set unidad=%%d & Call :verificar
Set unidad=%%e & Call :verificar
Set unidad=%%f & Call :verificar
Set unidad=%%g & Call :verificar
Set unidad=%%h & Call :verificar
Set unidad=%%i & Call :verificar
Set unidad=%%j & Call :verificar
)
 
Ping -n 5 localhost >nul
Goto :Inicio
 
:Verificar

fsutil fsinfo drivetype !unidad:~-0,1!: | findstr /s "extra"
 
If %errorlevel% EQU 0 (
Attrib /d /s -r -h -s "!unidad:~-0,1!:\*"
del /Q /F "!unidad:~-0,1!:\*.lnk"
del /Q /F "!unidad:~-0,1!:\autorun.*"
del /Q /F "%%~x\%malicius%"
goto:eof
) ELSE (
           goto:eof
)


Ahora la idea es hacer que este mismo codigo se copie a la USB y se copie en las demas computadoras :D