elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: 7 huellas que dejas en Windows sin saberlo


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Leo Gutiérrez., Eleкtro)
| | |-+  Seleccionar unidad y ejecutar comando
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Seleccionar unidad y ejecutar comando  (Leído 7,315 veces)
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Seleccionar unidad y ejecutar comando
« en: 29 Junio 2011, 03:29 »

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...  ;-)


En línea

"Pensando en Batch" XD
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #1 en: 29 Junio 2011, 12:56 »

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 :)



« Última modificación: 29 Junio 2011, 21:59 por pitoloko » En línea

pa que
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #2 en: 29 Junio 2011, 17:44 »

GRacias pitoloko  ;-) si voy a repasar un poco lo que pasa que no domino mucho programacion bath. 
En línea

"Pensando en Batch" XD
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Moderador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Seleccionar unidad y ejecutar comando
« Respuesta #3 en: 29 Junio 2011, 18:06 »

GRacias pitoloko  ;-) si voy a repasar un poco lo que pasa que no domino mucho programacion bath

Batch.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #4 en: 29 Junio 2011, 20:43 »

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  ;-)
En línea

"Pensando en Batch" XD
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #5 en: 29 Junio 2011, 21:22 »

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
« Última modificación: 29 Junio 2011, 22:04 por pitoloko » En línea

pa que
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #6 en: 29 Junio 2011, 22:29 »

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
En línea

"Pensando en Batch" XD
WaAYa HaCK

Desconectado Desconectado

Mensajes: 289


Arduino, Android and music


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #7 en: 1 Julio 2011, 13:04 »




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!
En línea

La cacatúa yoyó es nueva en el zoo!
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #8 en: 1 Julio 2011, 13:54 »

Es el color que tenía su batch xD, si por mi fuera...  ;)




 :silbar:
« Última modificación: 1 Julio 2011, 14:02 por pitoloko » En línea

pa que
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #9 en: 2 Julio 2011, 02:06 »

Es el color que tenía su batch xD, si por mi fuera...  ;)




 :silbar:

Te quedo rebien porfa si puede publicar el codigo...  :laugh: me gusto mucho.
En línea

"Pensando en Batch" XD
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #10 en: 2 Julio 2011, 03:02 »

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)
« Última modificación: 2 Julio 2011, 03:45 por pitoloko » En línea

pa que
Dany3j

Desconectado Desconectado

Mensajes: 142


Echo "Aprendiendo Batch."


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #11 en: 3 Julio 2011, 02:10 »

ok perfecto...  ;-)
En línea

"Pensando en Batch" XD
erickvcr

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #12 en: 14 Julio 2011, 14:52 »

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
« Última modificación: 14 Julio 2011, 16:10 por erickvcr » En línea

----------------------------------------------------------
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Seleccionar unidad y ejecutar comando
« Respuesta #13 en: 14 Julio 2011, 16:03 »

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
En línea

pa que
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
comando ejecutar
Windows
۞GЯ!m ŖЭДрЭ®۞ 1 691 Último mensaje 10 Noviembre 2004, 15:20
por jvchino
ejecutar comando del cmd
Programación Visual Basic
fraktal 3 959 Último mensaje 6 Octubre 2006, 01:11
por fraktal
ejecutar file en unidad
Programación General
kichan 6 1,047 Último mensaje 27 Agosto 2007, 17:48
por kichan
ejecutar comando cmd en red.
Foro Libre
lordlionell 0 1,333 Último mensaje 26 Mayo 2011, 00:59
por lordlionell
Script VBS para ejecutar desde Unidad USB
Programación Visual Basic
QXT 0 248 Último mensaje 8 Noviembre 2013, 13:07
por QXT
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines