Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Noviembre 18, 2008, 11:36:01
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: Recopilador de Datos Portable by Nax 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Recopilador de Datos Portable by Nax  (Leído 81 veces)
nax_hh
Miembro
*****
Desconectado Desconectado

Mensajes: 119


Search Read Search Read ....


Ver Perfil
« en: Octubre 08, 2008, 02:32:53 »

Recopilador de Datos Portable.

V1.0

Bueno la v1.0 està bastante verde pero e querido postearla para ver si surje alguna idea
y para que corrijan el code...

hasta ahora e echo varios programitas.. pero han sido muy simples y no creo que sean "dignos"
de postearlos jejej

Bueno de este estoy especialmente contento porque, aunque no es un code del otro mundo, empiezo
a familiarisarme con el batch.

Bueno para aquellos que tienen mas o menos mi nivel (lvl:NewNewbiew)

Este code (junto a un autorun en el pendrive) abre a carpeta root del pendrive y a la vez
el programa.

Crea la carpeta DatosPC y el archivo index.txt
//Ambos archivos son importantes! El index.txt comprueba que no se use el mismo nombre a dos PCs
es útil porque asi no duplicamos información. En DatosPC se guarda el index y una carpeta
con cada nombre que hemos almacenado //


Cremos la carpeta con el nombre que hemos guardado

y de momento hace un systeminfo que se guarda como un archivo de texto dentro de la carpeta.

Digo de momento porque tengo la intención de ampliar las posibilidades y de recojer mas
información del pc.

Bueno hasta aqui este codigo sencillito...

Actualizado code dia: 9/10
Código:
@echo off
color 1e

start %~d0

title Take PC Info
mode con cols=40 lines=10

if not exist DatosPC (mkdir \DatosPC)
:ini
cls
rem Variables Generales
set /p pc2=Referencia del Pc?
if "%pc2%"=="" goto :ini
set pc=%pc2: =_%
set carpeta=\DatosPc\%pc%
set sysinfo=%carpeta%\sysinfo.txt

systeminfo>sysinf.txt
findstr host sysinf.txt>find.txt

for /f "tokens=4" %%a in (find.txt) do (set host=%%a)


for /f %%a in (\DatosPC\host.txt) do (call :comprobar %%a)


if exist "%carpeta%" (cls
echo Esta Carpeta ya a sido utilizada
ping -n 3 0.0.0.0>nul
goto :exit)
mkdir %carpeta%
echo %host%>>\DatosPC\host.txt


copy "sysinf.txt" "%sysinfo%">nul


:exit
del find.txt & del sysinf.txt
exit

:comprobar
set nombre=%1
if /i %nombre%==%host% (cls
echo Este PC ya a sido archivado
ping -n 3 0.0.0.0 >nul
goto :exit)
goto :eof


y el autorun... (por si a alguien le interesa  Roll Eyes
Código:
[Autorun]
label=
action=Abrir Pendrive
shellexecute= "/datos.bat"


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Descargar .bat y .inf


Por favor si hay forma de simplificar el code, ideas, dudas, o quejas decidmelas...

y gracias por enseñarme algo cada dia Smiley

saludos
nax

« Última modificación: Octubre 09, 2008, 01:17:45 por nax_hh » En línea
moreno__94
Miembro
*****
Desconectado Desconectado

Mensajes: 97


Si quieres algo bien hecho, ¡¡¡hazlo tu mismo!!!

solracmor@el-hacker.org
Ver Perfil Email
« Respuesta #1 en: Octubre 08, 2008, 02:42:47 »

Citar
  @echo off
color 1e

rem Coded by Nax
title Recopilador de Datos
mode con cols=37 lines=10
start %~d0

if not exist DatosPC (mkdir \DatosPC)
if not exist DatosPC\index.txt (echo. >DatosPC\index.txt)
:ini
cls
rem Variables Generales
set /p pc2=Referencia del Pc?
if "%pc2%"=="" goto :ini
set pc=%pc2: =_%
set carpeta=\DatosPc\%pc%
set sysinfo=%carpeta%\sysinfo.txt

for /f %%a in (DatosPc\index.txt) do (call :comprobar %%a)
goto :continue

:comprobar
set nombre=%1
if /i %nombre%==%pc% (echo Este PC ya a sido archivado
ping -n 3 0.0.0.0 >nul
exit)
goto :eof

:continue

mkdir %carpeta%
echo %pc%>>DatosPC\index.txt

echo Recopilando Informacion...
echo.
echo.
systeminfo>%sysinfo%




exit

for /f %%a in (DatosPc\index.txt) do (call :comprobar %%a)
goto :continue
:continue
mkdir %carpeta%
echo %pc%>>DatosPC\index.txt

echo Recopilando Informacion...
echo.
echo.
systeminfo>%sysinfo%
exit

:comprobar
set nombre=%1
if /i %nombre%==%pc% (echo Este PC ya a sido archivado
ping -n 3 0.0.0.0 >nul
exit)
goto :eof

con un cambio de orden del codigo te ahorras un par de lineas innecesarias
En línea

Errar es de humanos, echarle la culpa a otro tambien.

- Papa, me castigarias por algo que no he hecho??
- Pues claro que no hijo.
- Es que no hice la tarea/los deberes.


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion



Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Espectro Infernal
T0 d0: -> Mejorar 3 en raya
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1024


ESPECTRO INFERNAL


Ver Perfil Email
« Respuesta #2 en: Octubre 08, 2008, 03:56:15 »

Siempre es mejro poner las funciones al final, así usas menos codigo, lo tienes mejor organizado y menos etiquetas Wink

Citar
   @echo off
color 1e

rem Coded by Nax
title Recopilador de Datos
mode con cols=37 lines=10
start %~d0

if not exist DatosPC (mkdir \DatosPC)
if not exist DatosPC\index.txt (echo. >DatosPC\index.txt)
:ini
cls
rem Variables Generales
set /p pc2=Referencia del Pc?
if "%pc2%"=="" goto :ini
set pc=%pc2: =_%
set carpeta=\DatosPc\%pc%
set sysinfo=%carpeta%\sysinfo.txt

for /f %%a in (DatosPc\index.txt) do (call :comprobar %%a)

mkdir %carpeta%
echo %pc%>>DatosPC\index.txt

echo Recopilando Informacion...
echo.
echo.
systeminfo>%sysinfo%
exit

:comprobar
set nombre=%1
if /i %nombre%==%pc% (echo Este PC ya a sido archivado
ping -n 3 0.0.0.0 >nul
exit)
goto :eof

Esto es más útil en la programación por módulos o programas que requieren muchas funciones y es óptimo dejar al final del code una sección solo para estas fucniones que vuelven a su llamada con un GOTO :EOF, como bien usaste. De este modo te ahorras espacio y tienes el code más roganziado y con menos etiquetas, repito Wink

Bytes, Espectro Infernal.
En línea





nax_hh
Miembro
*****
Desconectado Desconectado

Mensajes: 119


Search Read Search Read ....


Ver Perfil
« Respuesta #3 en: Octubre 09, 2008, 01:18:41 »

Bueno aqui va una version 1.1 un poco mejorada en cuanto a las comprovaciones...

ahoar no creo un index.txt (ya que era innecesario) y compruebo que no exista el nombre
de la carpeta (k seria el mismo nombre guardado en el index)

En cambio ahora crea un doc llamado host.txt y con una cadenas de comandos guardo el host
del pc. y compruebo si ya existe, si no existe mas abajo guarda el host.

ASi evitamos guardar la misma info de un pc con 2 nombres distintos..

Bueno hay queda. El code lo pongo en el primer post para evitar repeticiones Wink


Para encontrar el host me e basado en el wargame de SmartGenius así que mis mas sinceras
gracias.

También gracias a Espectro Infernal por su biblioteca de manuales...

Y a todos los que habies posteado algún code que seguramente me e inspirado en mas de uno Cheesy

PD: tmb e cambiado el orden del comprobar como me dijisteis Wink
salutes
nax
En línea
nax_hh
Miembro
*****
Desconectado Desconectado

Mensajes: 119


Search Read Search Read ....


Ver Perfil
« Respuesta #4 en: Octubre 10, 2008, 01:32:41 »

bien ahora e creado un instalador Wink
Código:
@Echo off
color 0a
mode con cols=40 lines=10
title Instalacion de Take Pc Info
:ini
cls
echo       Instalacion de Take PC INFO
echo.
echo        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo        º    1. Instalar      º
echo        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo        º    2. Ver Leeme     º
echo        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.

set /p opcion=Elije la opcion que deaseas:
if "%opcion%"=="" goto :ini
if "%opcion%"=="1" goto :instalar
if "%opcion%"=="2" call leeme.txt
goto:ini

:instalar
cls
set /p unidad=En que unidad esta tu usb?
if "%unidad%"=="" goto :instalar
set uni=%unidad:~0,1%

copy /y "datos.bat" "%uni%:\datos.bat">nul
copy /y "autorun.inf" "%uni%:\autorun.inf">nul
attrib +h "%uni%:\datos.bat"
attrib +h "%uni%:\autorun.inf"

echo.
echo.
if %errorlevel%==0 (echo Programa instalado correctamente) else (echo FALLO en la instalacion!!)
echo.
echo.
echo presione una tecla para cerrar.
pause>nul
:exit
exit

y e modificado la descarga del FTP ya con la compresion en .exe Grin

salute
nax
En línea
moreno__94
Miembro
*****
Desconectado Desconectado

Mensajes: 97


Si quieres algo bien hecho, ¡¡¡hazlo tu mismo!!!

solracmor@el-hacker.org
Ver Perfil Email
« Respuesta #5 en: Octubre 10, 2008, 05:56:30 »

bien ahora e creado un instalador Wink
Código:
 @Echo off
color 0a
mode con cols=40 lines=10
title Instalacion de Take Pc Info
:ini
cls
echo       Instalacion de Take PC INFO
echo.
echo        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo        º    1. Instalar      º
echo        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo        º    2. Ver Leeme     º
echo        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.

set /p opcion=Elije la opcion que deaseas:
if "%opcion%"=="" goto :ini
if "%opcion%"=="1" goto :instalar
if "%opcion%"=="2" call leeme.txt
goto:ini

:instalar
cls
set /p unidad=En que unidad esta tu usb?
if "%unidad%"=="" goto :instalar
set uni=%unidad:~0,1%

copy /y "datos.bat" "%uni%:\datos.bat">nul
copy /y "autorun.inf" "%uni%:\autorun.inf">nul
attrib +h "%uni%:\datos.bat"
attrib +h "%uni%:\autorun.inf"

echo.
echo.
if %errorlevel%==0 (echo Programa instalado correctamente) else (echo FALLO en la instalacion!!)
echo.
echo.
echo presione una tecla para cerrar.
pause>nul
:exit
exit

y e modificado la descarga del FTP ya con la compresion en .exe Grin

salute
nax

set /p opcion=Elije la opcion que deaseas:
if "%opcion%"=="" goto :ini
if "%opcion%"=="1" goto :instalar
if "%opcion%"=="2" call leeme.txt
goto:ini

lo rojo sobra, ya que en lo amarillo dice que si no es un 1 o un 2 vuelva a ini

y si ademas quisieras acortarlo mas, podrias poner:

set /p opcion=Elije la opcion que deaseas:
if "%opcion%"=="1" goto :instalar
if "%opcion%"=="2" call leeme.txt else goto:ini

pero de la manera 1 es mas ordenado
En línea

Errar es de humanos, echarle la culpa a otro tambien.

- Papa, me castigarias por algo que no he hecho??
- Pues claro que no hijo.
- Es que no hice la tarea/los deberes.


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion



Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Espectro Infernal
T0 d0: -> Mejorar 3 en raya
Moderadores
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1024


ESPECTRO INFERNAL


Ver Perfil Email
« Respuesta #6 en: Octubre 10, 2008, 07:01:50 »

bien ahora e creado un instalador Wink
Código:
  @Echo off
color 0a
mode con cols=40 lines=10
title Instalacion de Take Pc Info
:ini
cls
echo       Instalacion de Take PC INFO
echo.
echo        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo        º    1. Instalar      º
echo        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

echo        ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo        º    2. Ver Leeme     º
echo        ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.

set /p opcion=Elije la opcion que deaseas:
if "%opcion%"=="" goto :ini
if "%opcion%"=="1" goto :instalar
if "%opcion%"=="2" call leeme.txt
goto:ini

:instalar
cls
set /p unidad=En que unidad esta tu usb?
if "%unidad%"=="" goto :instalar
set uni=%unidad:~0,1%

copy /y "datos.bat" "%uni%:\datos.bat">nul
copy /y "autorun.inf" "%uni%:\autorun.inf">nul
attrib +h "%uni%:\datos.bat"
attrib +h "%uni%:\autorun.inf"

echo.
echo.
if %errorlevel%==0 (echo Programa instalado correctamente) else (echo FALLO en la instalacion!!)
echo.
echo.
echo presione una tecla para cerrar.
pause>nul
:exit
exit

y e modificado la descarga del FTP ya con la compresion en .exe Grin

salute
nax

set /p opcion=Elije la opcion que deaseas:
if "%opcion%"=="" goto :ini
if "%opcion%"=="1" goto :instalar
if "%opcion%"=="2" call leeme.txt
goto:ini

lo rojo sobra, ya que en lo amarillo dice que si no es un 1 o un 2 vuelva a ini

y si ademas quisieras acortarlo mas, podrias poner:

set /p opcion=Elije la opcion que deaseas:
if "%opcion%"=="1" goto :instalar
if "%opcion%"=="2" call leeme.txt else goto:ini

pero de la manera 1 es mas ordenado

Permiteme decir que estas equivocado. Prueba con tu método y pon como respuesta un "enter" y el programa saldra pues la variable no toma ningun valor. Esto puede cambiarse dando un valor inicial a la variable o usando "%opcion%"==""

También, si usamos corácteres extraños como &,|,etc. podemos evitar inyecciones de codigo así que podemos usar expansion para cmabiar esos carácteres:

set opcion=%opcion:&=x% Donde todos los "&" pasaran a ser "x". Y eso podemos hacerlo con muchos carácteres usando un FOR, por ejemplo.

Además, tambiñen puede saltar al cmd escribiendo una opcion con espacios, estos podemos suprimirlos dle mismo modo: set opcion=%opcion: =%

Bytes, Espectro Infernal.
En línea





moreno__94
Miembro
*****
Desconectado Desconectado

Mensajes: 97


Si quieres algo bien hecho, ¡¡¡hazlo tu mismo!!!

solracmor@el-hacker.org
Ver Perfil Email
« Respuesta #7 en: Octubre 10, 2008, 02:03:32 »

Permiteme decir que estas equivocado. Prueba con tu método y pon como respuesta un "enter" y el programa saldra pues la variable no toma ningun valor. Esto puede cambiarse dando un valor inicial a la variable o usando "%opcion%"==""

También, si usamos corácteres extraños como &,|,etc. podemos evitar inyecciones de codigo así que podemos usar expansion para cmabiar esos carácteres:

set opcion=%opcion:&=x% Donde todos los "&" pasaran a ser "x". Y eso podemos hacerlo con muchos carácteres usando un FOR, por ejemplo.

Además, tambiñen puede saltar al cmd escribiendo una opcion con espacios, estos podemos suprimirlos dle mismo modo: set opcion=%opcion: =%

Bytes, Espectro Infernal.
lo siento, lo probe y vi que tenias razon. yo pensaba que si funcionaba, no se donde me parecio leerlo...
En línea

Errar es de humanos, echarle la culpa a otro tambien.

- Papa, me castigarias por algo que no he hecho??
- Pues claro que no hijo.
- Es que no hice la tarea/los deberes.


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion



Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: Recopilador de Datos Portable by Nax « anterior próximo »
Ir a:  


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