elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 05:20  


Tema destacado: Entra al canal IRC oficial de #elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  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 3,648 veces)
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


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
@echo off
Title=foro.elhacker.net
color cf
setlocal Enabledelayedexpansion

 
 
REM Listamos todas las unidades.

 
for /F "tokens=1-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
)
goto :menu

 
 
REM Filtramos las unidades Fijas y Extraibles y nos deshacemos de las unidades opticas.

 
:Verificar
fsutil fsinfo drivetype !unidad:~-0,1!: | findstr /s "fija extra"
If %errorlevel% EQU 0 (
set /a num+=1
Set Unidad!num!=!unidad:~-0,1!:
goto:eof
) ELSE (
goto:eof
)

 
 
REM El menu para elegir la unidad a desinfectar.

 
:Menu
cls
echo+
echo ========================!num! UNIDADES ENCONTRADAS=========================
echo =======================================================================
echo ======================UNIDADES !unidad1!!Unidad2!!Unidad3!!Unidad4!!Unidad5!!Unidad6!!Unidad7!!Unidad8!!Unidad9!DETECTADAS=======================
echo =======================================================================
echo =====================PRESIONE LA LETRA DE LA UNIDAD====================
 
 
set /p opcion=
if exist %opcion::=%: (
goto :desinfectar
) ELSE (
echo+ & echo No se encuentra la unidad %opcion::=%:...
ping -n 2 LOCALHOST >nul
cls
goto :menu
)

 
 
REM Desinfectamos en la unidad seleccionada.

 
:Desinfectar
Setlocal Disabledelayedexpansion
 
echo =======================================================================
echo =======================================================================
echo =====================REPARANDO ARCHIVOS INFECTADOS=====================
Attrib /d /s -r -h -s "%opcion::=%:\*"
echo =======================================================================
echo =======================================================================
echo ======================ELIMINANDO ACCESOS DIRECTOS======================
if exist "%opcion::=%:\*.lnk" del /f /q "%opcion::=%:\*.lnk"
echo =======================================================================
echo =======================================================================
echo ==========================ELIMINANDO AUTORUN===========================
if exist %opcion::=%:\autorun.inf del /F %opcion::=%:\autorun.inf
echo =======================================================================
echo =======================================================================
echo ========================OPERACI¢N FINALIZADA===========================
echo =======================================================================
echo =======================================================================
 
msg *     =====ARCHIVOS REPARADOS D@NY3J=====

REM By PiToLoKo

REM foro.elhacker.net
 
setlocal Enabledelayedexpansion
goto :menu
 





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
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


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


/^$/


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 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


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
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


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


import ehn / #include <ehn.h>


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



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
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


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
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


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
pitoloko


Desconectado Desconectado

Mensajes: 2.500


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


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.

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 497 Último mensaje 10 Noviembre 2004, 15:20
por jvchino
Ejecutar comando 1 sóla vez en VB
Programación General
icisneros 1 252 Último mensaje 13 Diciembre 2004, 02:02
por icisneros
ejecutar comando del cmd
Programación Visual Basic
fraktal 3 692 Último mensaje 6 Octubre 2006, 01:11
por fraktal
ejecutar file en unidad
Programación General
kichan 6 799 Último mensaje 27 Agosto 2007, 17:48
por kichan
ejecutar comando cmd en red.
Foro Libre
lordlionell 0 925 Último mensaje 26 Mayo 2011, 00:59
por lordlionell
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines