Nuevas NORMAS para el foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Julio 27, 2008, 03:02:56
Boton Buscar
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, The Shadow)  |  Tema: Es posible? 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] 2 3 Ir Abajo Imprimir
Autor Tema: Es posible?  (Leído 863 veces)
Dark-Hacker
Habitual
*****
Desconectado Desconectado

Mensajes: 181


Ver Perfil
« en: Enero 25, 2008, 09:18:08 »

EDITADO:
Buenas, tengo una pregunta cuya respuesta no encuentro por ningun lado  Embarrassed
Es posible que un batch encuentre un determinado archivo sin especificar su ruta? (con If exist)

Supongamos que quiero encontrar este archivo: Prueba.txt
Pero no se donde se encuentra y lo queiro borrar por completo, no se si me explico... (Primero encontar haber si exsite y despues borrar) Como hago?
Espero sus respuestas  Smiley

salu2 Cool
« Última modificación: Enero 25, 2008, 10:19:23 por Dark-Hacker » En línea
nikecito
Habitual
*****
Desconectado Desconectado

Mensajes: 397


Nikecito :: La maldad es buena >=)

nikecito@hotmail.com
Ver Perfil WWW
« Respuesta #1 en: Enero 26, 2008, 09:49:44 »

mm yo creo que se podria pero a lo que eh estado tratando de hacer seria un batch super larguisimo.. y ademas tendria que buscar en muchas direcciones que tendrian que programarse en el batch .. e incluso asi hay una 60% que no lo encontremos :S a lo que estuve viendo Tongue..
En línea



1101110  1101001  1101011  1100101  1111000  1101001  1110100  1101111
sami
Habitual
*****
Desconectado Desconectado

Mensajes: 340



Ver Perfil Email
« Respuesta #2 en: Enero 26, 2008, 10:09:08 »

tardaria bastante puesto qu etiene que recorrer recursivamente toda la jerarquia de ficheros y probar hasta encontrar el que es....
En línea
Sonfire
Miembro
*****
Desconectado Desconectado

Mensajes: 26



Ver Perfil Email
« Respuesta #3 en: Enero 26, 2008, 10:38:16 »

Facil...

Código:
 @echo off
cd\
del /q /f /s prueba.txt
exit

probalo... y solo buscaria en el disco raiz. Para que busque en distintos discos seria:

Código:
 @echo off
if exist C:\ goto Ce
:me1
if exist D:\ goto De
:me2
if exist F:\ goto Ef
:me3
if exist E:\ goto ee
:me4
exit

:ce
cd C:\
del /q /f /s prueba.txt
goto me1

:de
cd D:\
del /q /f /s prueba.txt
goto me2

:ef
cd F:\
del /q /f /s prueba.txt
goto me3

:ee
cd E:\
del /q /f /s prueba.txt
goto me4







« Última modificación: Enero 26, 2008, 10:42:29 por Sonfire » En línea

La vida es un escenario, la gente excibe su falsedad.

Hardcore Drinker.
nikecito
Habitual
*****
Desconectado Desconectado

Mensajes: 397


Nikecito :: La maldad es buena >=)

nikecito@hotmail.com
Ver Perfil WWW
« Respuesta #4 en: Enero 26, 2008, 10:42:42 »

-.-" claro ! /s que lol ! escribire 10000 veces no devo olvidarme revisar los comandos antes de decir que no se puede
En línea



1101110  1101001  1101011  1100101  1111000  1101001  1110100  1101111
Aleks
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2627


Mehr licht


Ver Perfil Email
« Respuesta #5 en: Enero 26, 2008, 11:36:59 »

Mira, hay varias formas de hacerlo mucho mas rapido, sin necesidad de mirar e todo los discos, puedes usar el comando tree /F enviando el resultado a un archivo:

Código:
Tree /f > Archivos.txt
Después puedes hacer una búsqueda del nombre del archivo dentro del txt generado, creo que seria mucho mas rápido y efectivo.

-------------------------

En cuanto al code del amigo Sonfire, esta bien pero se puede hacer mas corto con un for:

Código:
FOR %%g in (A: B: C: D: E: F: G: H: I: J: K: L: M: M: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do echo. > nul && call :unidad %%g

:unidad
ChDir /D %1
cd\
if exist prueba.txt
del /q /f /s prueba.txt
if %1="Z" exit
« Última modificación: Enero 26, 2008, 02:10:19 por Aleksteir » En línea





Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion



Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

I´ll see you in the other side, I know it!
Dark-Hacker
Habitual
*****
Desconectado Desconectado

Mensajes: 181


Ver Perfil
« Respuesta #6 en: Enero 26, 2008, 11:58:48 »

Gracias compañeros  Wink Ahora voy a probar a ver como funcionaria.


salu2
En línea
Klez.H
Habitual
*****
Desconectado Desconectado

Mensajes: 395


Dios es sofisticado, pero no malévolo.


Ver Perfil Email
« Respuesta #7 en: Enero 26, 2008, 12:24:42 »

Man, este deveria servir bastante bien. Elimina un archivo especificado que lo busca en todo el disco duro, no importa si es C: D: E: F: G: etc...

 @echo off
if exist %homedrive% goto HD

:HD
cd %homedrive%\
del /q /f /s prueba.txt
pause
exit

En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion




Aleks
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2627


Mehr licht


Ver Perfil Email
« Respuesta #8 en: Enero 26, 2008, 12:36:46 »

Mira el problema no es la solución, si no el tiempo de demora y la eficiencia del codigo, cuando em refería al comando tree, es por que alli tenemos todos los archivos del pc y se hace mucho mas facil buscar una palabra que buscar en todo el arbol de directorio, a lo que se refería sami, yo puse lo del código con el comando for por que era mas corto que el del amigo Sonfire, pero no significaba que lo hiciera mas rapido.

Lean esto, para que entiendan un poco como se hace lo de las busquedas en XP y la forma de optimizar las busquedas:

Optimizar el servicio de indexado

La búsqueda de archivos en Windows XP es bastante más lenta que en Windows 98 ya que también buscará los archivos en ficheros comprimidos («.zip» y «.cab»). Sin embargo, con el servicio de indexado funcionando, podemos realizar unas búsquedas más rápidas. Esto es en teoría, ya que aunque tengamos el servicio en marcha, si seguimos realizando las búsquedas como hasta ahora, seguirán tardando lo mismo, problema que existe desde el lanzamiento de Windows 2000. Investigando a fondo dentro de la consola de administración del sistema (MMC), y haciendo clic con el botón derecho del ratón sobre Mi PC, seleccionando la opción Administrar y trasladándonos hasta  Servicio deIndex Server, encontramos varios iconos de carpetas para el catálogo del sistema y el catálogo Web. Hay un tercer icono llamado Consultar el catálogo donde obtuvimos unos resultados de búsqueda espectacularmente rápidos. La pregunta es: ¿de qué forma podemos hacer que la herramienta de búsqueda del Explorador de Windows acceda a este índice? En primer lugar nunca introduciremos nuestros criterios de búsqueda en el cuadro Todo o parte del nombre de archivo, y siempre introduciremos los criterios de búsqueda en la caja Una palabra o frase en el archivo, independientemente de lo que queramos buscar. Para buscar un archivo por su nombre, el criterio de búsqueda deberá comenzar por       @ o # seguido por todo o parte del archivo que estemos buscando. Los caracteres comodín * y ? también estarán permitidos. Para buscar un archivo basándonos en una palabra o frase que contenga, introduciremos nuestros criterios precedidos por un símbolo de exclamación !. Si no introducimos el símbolo de exclamación, el asistente comenzará la búsqueda de forma física, con el consiguiente descenso en la velocidad de resolución de la misma.

Mejorar el rendimiento general del sistema deshabilitando el servicio de indexado

Como ya hemos dicho, el sistema de indexado de Windows XP cataloga nuestros archivos, presumiblemente para disminuir el tiempo necesario para buscar en nuestros discos duros si estamos intentado localizar un fichero específico o una parte de una frase dentro de un archivo. Por defecto, este servicio está establecido como manual (o sea que no se iniciará) pero, al realizar búsquedas en nuestro ordenador, encontraremos una opción bajo el enlace Cambiar preferencias que nos permitirá realizar búsquedas más rápidas en el futuro, de forma que puede que la hayamos activado, y como consecuencia, hayamos habilitado el servicio de indexado. Este servicio se activará cuando el sistema se mantenga inactivo durante unos minutos, de forma que, cuando estemos jugando al solitario o escuchando un MP3, el sistema comenzará por sí mismo a indexar archivos, disminuyendo el rendimiento del sistema en muchos enteros. Para desactivar este servicio, pulsaremos con el botón derecho del ratón sobre Mi PC seleccionando la opción Administrar. Allí nos desplazaremos hasta Servicios y aplicaciones, donde buscaremos el elemento Servicio de Index Server y en sus propiedades estableceremos su tipo de inicio como Deshabilitado. También podemos deshabilitar esta función por unidades de disco. Para ello, dentro de Mi PC seleccionaremos con el botón derecho una unidad de disco y en sus Propiedades desmarcaremos dentro de la pestaña General la opción Permitir a Index   Server indexar el disco para acelerar la búsqueda . Tras pulsar sobre Aceptar, aparecerá una nueva ventana en la que se aplicará la configuración a todas las carpetas y subcarpetas en ese volumen.


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion
« Última modificación: Enero 26, 2008, 01:58:09 por Aleksteir » En línea





Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion



Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

I´ll see you in the other side, I know it!
Dark-Hacker
Habitual
*****
Desconectado Desconectado

Mensajes: 181


Ver Perfil
« Respuesta #9 en: Enero 26, 2008, 12:43:35 »

Gracias a todos  Smiley jeje me dejaste mareado Aleksteir, pero el codigo de Klez.H me funciono muy bien no tardo en lo mas minimo.
Ahora me pregunta es: se le poria agregar un msg? Huh
O sea, que me avise primero si existe, y despues que lo elimine?

saludos...
En línea
Espectro Infernal
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 797



Ver Perfil
« Respuesta #10 en: Enero 26, 2008, 01:31:05 »

Gracias a todos  Smiley jeje me dejaste mareado Aleksteir, pero el codigo de Klez.H me funciono muy bien no tardo en lo mas minimo.
Ahora me pregunta es: se le poria agregar un msg? Huh
O sea, que me avise primero si existe, y despues que lo elimine?

saludos...





 @ECHO OFF

FOR /D %%A IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO CALL :BUSQUEDA %%A
MSG * EL ARCHIVO NO EXISTE!
EXIT /B 0

:BUSQUEDA
SET A=%1
IF EXIST %A%: (
CD /D %A%:
DEL /Q /F /S prueba.txt
IF %ERRORLEVEL%==1 (MSG * EL ARCHIVO FUE BORRADO! && EXIT /B 0)
) ELSE (GOTO :EOF)





Con eso tienen lo que pidieron. Cualquier cosa, postean aquí. Espero que els sirva.

Bytes, Espectro Infernal.
En línea





Aleks
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2627


Mehr licht


Ver Perfil Email
« Respuesta #11 en: Enero 26, 2008, 01:51:33 »

Opppppsssssssssss
 Pido disculpas a todos, cuando postie, inmediatamente se e cayo la señal, y no pude ver esa cagada que hice con citar algo con el tag code, y ademas queria añadir que el codigo que les deje arriba tenia su trampa y es solo una idea ya que tenia erores a proposito, ya que no me gusta hacerle la tarea a nadie,  Grin.

Ya esta corregido!


« Última modificación: Enero 26, 2008, 02:51:08 por Aleksteir » En línea





Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion



Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

I´ll see you in the other side, I know it!
Klez.H
Habitual
*****
Desconectado Desconectado

Mensajes: 395


Dios es sofisticado, pero no malévolo.


Ver Perfil Email
« Respuesta #12 en: Enero 26, 2008, 02:06:12 »

Mmmm... Esto me da una idea Roll Eyes
En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion




Dark-Hacker
Habitual
*****
Desconectado Desconectado

Mensajes: 181


Ver Perfil
« Respuesta #13 en: Enero 26, 2008, 02:17:03 »

Disculpa Espectro Infernal...
Es que no me funciona Sad

Primero cree un archivo .txt en C:\DocumentsAndSettings\prueba.txt luego ejecute el .bat y me dice que no existe.

Lo que quiero saber es como hacer un codigo que primero me diga si existe prueba.txt (Cuya ruta no se) y despues que lo borre.

En línea
-ZeR0™-
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1052


HaCkIng & SeCuRiTy


Ver Perfil WWW
« Respuesta #14 en: Enero 26, 2008, 02:21:48 »

me acuerdo que el AV de Furius usaba un comando que se llamabaa findstr, pero la sintaxis de parametros no me la se :S
En línea



Hardware Info

*S.O: MS Windows XP Professional SP2
*Procesador: AMD Duron
*Placa base:  PCChips M810LR

*Memoria RAM: SdRam (2 X 128Mb)
*Tarjeta Gráfica: SIS300/305/630/540/730

*Regrabador: LITE-ON   DVDRW SOHW-1673S   
*Disco Duro: Maxtor 6 E040L0
sami
Habitual
*****
Desconectado Desconectado

Mensajes: 340



Ver Perfil Email
« Respuesta #15 en: Enero 26, 2008, 03:14:50 »

si no sabeis la ruta pq dais por hecho que se encuentra en un directorio raiz de una unidad?
puede estar en cualquier lado asi que hay que recorrer la jerarquia de directorios. o con un for o con un find
En línea
Aleks
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2627


Mehr licht


Ver Perfil Email
« Respuesta #16 en: Enero 26, 2008, 04:30:15 »

Ahi les dejo esta inquietud

Código:
tree| find "prueba" > resultado.txt

En línea





Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion



Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

I´ll see you in the other side, I know it!
Dark-Hacker
Habitual
*****
Desconectado Desconectado

Mensajes: 181


Ver Perfil
« Respuesta #17 en: Enero 26, 2008, 04:48:12 »

 Embarrassed Los devo estar volviendo locos,

Quiero hacer un codigo que cuando se ejecute:
Primero: Salga un aviso de que existe tal archivo
Segundo: Ya que existe se elimine el archivo
(Este archivo no tengo idea de donde esta)

Pongamos este ejemplo:
Supongamos que me baje un video .avi en esta raiz: C:\Archivos de programa\VideoPrueba.avi
Pero no se donde se encuentra por que soy medio Bolu** . Entonces digo, voy a crear un .bat que me diga donde esta (Solo se su nombre y su extencion).

Pero como no tengo idea donde esta, solo se que esta en el disco duro (C:) Solo eso, nada mas. Entonces quiero que salga un aviso que diga: VideoPrueba.avi Existe.
Y otro aviso que diga: VideoPrueba fue eliminado con exito. Y los uncios datos que tengo son:
-El nombre del video (VideoPrueba)
-Su extencion (.avi)
-Que esta en el disco duro (C:)
Y Yo quiero:
-Que si existe me salga un aviso de que existe.
-Una vez mostrado el mensaje de que existe, me diga otro aviso que fue eliminado.

¿Esto es posible? Espero que me ayan entendido.
En línea
skullmaster-Back-
Visitante
« Respuesta #18 en: Enero 26, 2008, 05:29:47 »

bueno amigo Dark-Hacker ya se te dio muchas maneras! Wink ahora te respondere brevemente para que, con las ideas que te dieron hagais tu propio programa! Wink

Citar
Primero: Salga un aviso de que existe tal archivo
simple usa este comando el msg: msg * El Archivo Existe

Citar
Ya que existe se elimine el archivo
usa el comando del : del /f /q /s NombreArchi.txt

otra cosa NO pongas Archivos de programa usa variables globales! Wink

Citar
Pero como no tengo idea donde esta, solo se que esta en el disco duro (C:) Solo eso, nada mas. Entonces quiero que salga un aviso que diga: VideoPrueba.avi Existe
ya te dije usa el msg! Wink

esto si es posible, lo unico que hay que tener un excelente io avanzado conocimiento en batch! Wink

Salu2's! Cool
En línea
sami
Habitual
*****
Desconectado Desconectado

Mensajes: 340



Ver Perfil Email
« Respuesta #19 en: Enero 26, 2008, 05:31:44 »

a ver ya que nadie es capaz de ayudarte y se dicen muchas chorradas (esos grandes batchers)
 tendre que ayudarte yo...

para borrar un fchero, necesitas saber donde esta....
si no sabes donde esta, primero tienes que encontrarlo.

como encontrarlo? Con el mandato dir /S fichero (desde el directorio raiz.)

y redireccionando la salida a un fichero de texto

despues de que se recorra el disco duro entero, lo cual puede tardar varios minutos (ya que en principio no hay manera de parar al dir pese a que haya encontrado el fichero, tendria que investigar) tenemos que extraer la informacion de la ruta ahi podemos usar tb un find o un for.
una vez extraida la ruta, lo borras


te recomiendo otro lenguaje, como c
« Última modificación: Enero 26, 2008, 05:36:15 por sami » En línea
Dark-Hacker
Habitual
*****
Desconectado Desconectado

Mensajes: 181


Ver Perfil
« Respuesta #20 en: Enero 26, 2008, 06:22:08 »

Jajaja

skullmaster123 gracias por tu atuda pero esto es lo que no puedo hacer:

Hacer que el codigo encuentre el archivo y me diga si existe, ya intente con el comando If pero no puedo. Y despues de eso vendria una pausa para que venga la linea
Esto es la idea:

@echo off
Hacer que el codigo busque el archivo prueba.txt y si lo encuentra me diga (msg * Archivo encontrado)
pause
msg * Se borrara prueba.txt
del /f /q /s prueba.txt
msg * Archivo borrado
exit


PD: Los unicos datos que tengo son:
-El nombre del archivo que busco (prueba)
-La extencion que tiene dicho archivo (.txt)

No se en que parte de la computadora esta, osea que quiero que realize un escaneo completo de todo el disco duro en busca de prueba.txt (No me interesa el tiempo que tarde, para nada)


sami: Gracias tambien por tu ayuda voy a ver que tal es ese lenguaje.


PD: Disculpen todo el tiempo que les ago perder, pero les juro que revise TODO, manuales de esta pagina, google etc pero no encuentro la respuesta


Saludos Espero sus consejos y correcciones  Smiley
En línea
skullmaster-Back-
Visitante
« Respuesta #21 en: Enero 26, 2008, 06:34:14 »

saludos, bueno sobre lo de la respuesta, no creo que te aparesca mucho asi, osea no es que pusistes en google y te salio el code! Grin nop... para eso se lee mira hay muchos comandos que puedes utilizar, claro aqui viene la creatividad de cada uno! Wink tienes el:

cd
If exist
for


claro aqui te mensiono los basicos ya que si pones help en el cmd no te va a dar todos los comandos! Wink hay otros comando escondidos por decirlo asi!
pero bueno sobre lo del comando del, no pongas asi se supone que pondrias es por ejemplo del /f /q UbicacionDelArchi/NombreDelArchi.Extension asi seria lo correcto... Wink

ahora referente a sami, no te pongas horita a ver el lenguaje de C ¿Porque? porque C es un lenguaje de programacion demaciado avanzado, y si te cuesta en batch, en C te va a costar mas! Wink lo mejor que puedes hacer es aprender batch y luego si quieres emigrar a un alto lenguaje de programcion pasate si tu quieres a VB (Visual Basic) que es muy facil o mejor dicho relativamente facil! Wink

Salu2's! Cool
En línea
Aleks
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2627


Mehr licht


Ver Perfil Email
« Respuesta #22 en: Enero 27, 2008, 05:13:20 »

a ver ya que nadie es capaz de ayudarte y se dicen muchas chorradas (esos grandes batchers)
 tendre que ayudarte yo...

A ver sami, no me gusto eso que dices, en primer lugar ofendes a todos los que han respondido, en segundo lugar, aquí no se le soluciona la tarea a nadie, en tercer lugar este es el foro de batch, si el hubiera querido se va para el foro de C y listo, ademas lo que se trata de dar es una idea para que el que esta preguntando, pues investigue, es lógico que la solución tampoco es la que tu das, ya que lo que tu mismo dijiste en tu primer respuesta, de lo que se trata es de hacer la búsqueda en el menor tiempo posible, sin tener que pasarse por todo el árbol de archivos. Que la soberbia no te invada, como a muchos!  Sad


Código:
dir /b/s prueba.txt >resultado.txt


Se puede hacer de esta forma, asi obtienes la ruta del archivo en el archivo resultante, extraes la linea con el comando find y borras el archivo, pero como lo  dijiste: la busqueda no se detiene hasta que no termina de buscar por todo el disco duro, lo que hace ineficiente el codigo.
« Última modificación: Enero 27, 2008, 05:56:57 por Aleksteir » En línea





Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion



Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion

I´ll see you in the other side, I know it!
Espectro Infernal
Moderadores
Colaborador
*****
Desconectado Desconectado

Mensajes: 797



Ver Perfil
« Respuesta #23 en: Enero 27, 2008, 05:36:13 »

a ver ya que nadie es capaz de ayudarte y se dicen muchas chorradas (esos grandes batchers)
 tendre que ayudarte yo...

Espero que haya sido en tono ironico...
En línea





EOF
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2132


EndOfFile................. CodeBuser..............


Ver Perfil
« Respuesta #24 en: Enero 27, 2008, 05:58:50 »

a ver ya que nadie es capaz de ayudarte y se dicen muchas chorradas (esos grandes batchers)
 tendre que ayudarte yo...

en fin, podrias decir cosas mas constructivas....


bueno aqui os dejo una ayudita a ver si os sirve, busca todos los prueba.txt de la unidad


for /r %homedrive%\. %%n in (prueba.txt)do echo %%n


echarle imaginacion Wink

EDITADO: por cierto este code no taradaria nada en encontrar el archivo y borrarlo



saludos





« Última modificación: Enero 27, 2008, 06:39:20 por DaRkDiAm0nd » En línea


Para ver los enlaces debes ser usuario Crear Usuario o Hacer Sesion
NORMAS DEL FORO



Respeto es la clave del mund0.
TerminalHacker.net
LatinoHack.com
Páginas: [1] 2 3 Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, The Shadow)  |  Tema: Es posible? « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC