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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda con este script
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con este script  (Leído 3,216 veces)
janus_gf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Ayuda con este script
« en: 5 Mayo 2008, 05:47 am »

hola a todos amigos :) miren tengo un archivo txt  con varias lineas ahora
lo q quiero es que por ejemplo tomar las cinco primeras lineas y mandarlo
a otro archivo, intente con este codigo:  :¬¬

@echo off
cls
set /a r=0
for /f  "tokens=*" %%i in (test5.txt) do @echo %%i && set /a r +=1 && if "%r%"=="5" @echo %%i>>1.txt

Este script se me ocurrio pero igualno funciona en realidad no tengo muchas ideas de como podria hacer agradeceria sugerencias  ::)
un salu2 a todos ;)


En línea

No_NICK

Desconectado Desconectado

Mensajes: 40


Ver Perfil
Re: Ayuda con este script
« Respuesta #1 en: 5 Mayo 2008, 21:28 pm »

Epale amigo que buena pregunta disculpa pero te voy a modificar
  tan solo un poquitin tú codigo espero que no te molestes
 
  xD Saludos

Código:
 
echo off
:: Creo el archivo, por que no existe aún
:: en tú caso como ya existe el archivo
:: omite estas primeras lineas
echo este es el texto de la linea 1 > texto.txt
echo estes es la linea 2 >> texto.txt
echo uff y asi puedo continuar hasta >> texto.txt
echo la linea 4 >> texto.txt
echo y sin parar hasta el final >> texto.txt
echo que tal dos lineas mas ^? >> texto.txt
echo bueno esta bien estas >> texto.txt
echo sera la ultima linea >> texto.txt
:: Aqui termina de escribir el archivo
echo %errorlevel% > nul

:: aquí comienza a correr tú scripts...
:: agrego el contador y lo igualamos a cero

 set /a var=0

:: en este punto puedes agragar la direccion donde se encuantra el archivo
:: ejemplo:
:: set xD=c:\Document and....\dedos.txt

 set xd=texto.txt

:: con el comando for listamos todas las lienas del archivo .txt
for /f "tokens=*" %%a in (%xd%) do set j=%%a && call :ini

:ini
:: luego con el contador listamos solo las primeras 5 lineas q pasaron por el for
if '%var%'=='5' goto fin
set /a var=var+1

:: pasamos las 5 primeras lineas al archivo llamado prueba.txt
echo %var% %j% >> prueba.txt
goto :eof

:fin


: {Y-este-es-el-Fin-xD}


.....


En línea

janus_gf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Ayuda con este script
« Respuesta #2 en: 6 Mayo 2008, 05:16 am »

hola No_Nick excelente gracias por la respuesta  ;) justo lo q estaba buscando
pero ahora tengo esta inquietud :¬¬ si por ejemplo quiero leer apartir de la linea 2 por ejemplo y solamente las 3 lineas consecutivas como podria hacer esa delimitacion.

Un salu2 amigo y nuevamente gracias por responder si se te ocurre algo
en buena hora  ::)
En línea

No_NICK

Desconectado Desconectado

Mensajes: 40


Ver Perfil
Re: Ayuda con este script
« Respuesta #3 en: 6 Mayo 2008, 05:31 am »

... a esta linea le agregas un "skip=n"  que
 especifica el número de
 líneas que hay que saltarse al principio
 del archivo.
 
Citar

:: Solo modifica esta linea agregando el skip=n
:: La lógica del script quedaría así : si tienes 5 lineas en el .txt
::  -si comienzas por la linea 2 = entonces en el archivo .txt la linea 5 sera
:: 3 en el contador

     for /f "tokens=* skip=2 " %%a in (%xd%) do set j=%%a

:: Lo demás queda igual


Saludos...

« Última modificación: 6 Mayo 2008, 05:36 am por No_NICK » En línea

janus_gf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Ayuda con este script
« Respuesta #4 en: 6 Mayo 2008, 18:48 pm »

Muchas gracias amigo :D, mira estoy tratando de hacer lo siguiente tengo un
archivo con 5 preguntas, ahora lo estoy dividiendo cada pregunta en un archivo aparte, asi como me dijiste funciona perfectamente ;) pero para cada pregunta tengo q crear otro script y bueno yo lo quería implementar solo en un script, mi código es el siguiente:

@echo off
:: Esta variable es para capturar el nro de pregunta
set /a preg=1

:: esta es para saltar las lineas
set /a salta=1

:inicio
cls

set /a var=0

:: pregunto por el nro de pregunta y de acuerdo
:: a eso salto las lineas

if "%preg%"=="2" set /a salta=6
if "%preg%"=="3" set /a salta=6*2
if "%preg%"=="4" set /a salta=6*3
if "%preg%"=="5" set /a salta=6*4

:: con el comando for listamos todas las lienas del archivo .txt
for /f "skip=%salta% tokens=*" %%a in (test5.txt) do set j=%%a && call :ini

:ini
:: luego con el contador listamos solo las primeras 5 lineas q pasaron por el for
if '%var%'=='5' goto fin
set /a var=var+1

:: pasamos las 5 primeras lineas al archivo llamado prueba.txt
echo %j% >> P%preg%.txt
:: goto :eof


:fin
:: Aqui pregunto si es la ultima pregunta termina
if "%preg%" LEQ 5 goto salida

:: si no es la ultima aumenta el nro de pregunta
set /a preg+=1

:: regresamos al inicio para barrer las sigtes pregutnas
goto inicio

:salida


Sin embargo solo me toma la primera pregunta nada mas, el resto no las toma nose porque  :-[  sedebe poder hacer .. bueno nos vemos

Salu2



En línea

No_NICK

Desconectado Desconectado

Mensajes: 40


Ver Perfil
Re: Ayuda con este script
« Respuesta #5 en: 7 Mayo 2008, 02:00 am »

ummm creo que tienes dos detalles en tú scripts

Citar
:: el operador de comparación a utilizar seria este NEQ
:: y debes agregar al if /I de manera de q le informes al bat
:: q estas haciendo una comparación

if /I "%preg%" NEQ "5" goto salida


El segundo detalle que veo es el contador fíjate

Citar

set /a preg+=1           -- el que tú tienes
::y estes es

set /a preg=%preg%+1    ---el que yo usaría



     (creo que con ésto ya solucionas el problema...)

   Pero aún así me tomo la molestia de modificar la forma de usar
el contador para optimizar el uso de la memoria.. (no es necesario q lo hagas es solo un ejemplo...


Citar

::Ejemplo contador

echo off

:::iguala en la primera linea el contador a cero SIEMPRE xD
set /a preg=0

::y nos saltamos por encima el contador
goto inicio

:contador
set /a preg=%preg%+1
goto :EOF


:inicio
:: lo llamamos para que nos asigne 1 valor a la variable %preg%
call :contador

::
:: aquí comenzaría tú scripts




echo PREGUNTA %preg%






:: aquí finaliza tú scripts
:: ya verificamos la variable %preg% que valor tiene
:: y así hasta que se cumpla la condición y nos vamos al fin

if /I "%preg%" NEQ "4" goto inicio

goto fin

:fin


:: esto por que ??
:: por que es mas fácil reutilizar el contador en cualquier lugar del scripts
:: ejemplo

:: lo igualo a cero y lo llamo otra vez

set /a preg=0
call :contador

echo y sigo escribiendo código xD
echo por que el contador ahora esta en
echo el numero %preg% otra vez

 



   Saludos...
« Última modificación: 7 Mayo 2008, 02:20 am por No_NICK » En línea

janus_gf

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Ayuda con este script
« Respuesta #6 en: 7 Mayo 2008, 09:56 am »

excelente muchas gracias amigo ya todo funciona oks ;)
si tengo alguna otra duda lo postearé bajo otro tema
bueno nuevamente gracias por responder

Salu2 .....  ::)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con este script
Scripting
xemnas 1 2,028 Último mensaje 11 Febrero 2012, 12:13 pm
por xemnas
ayuda con este script! (search box en blogger)
Desarrollo Web
MineHitex 1 1,822 Último mensaje 10 Octubre 2013, 15:02 pm
por #!drvy
ayuda urgente con este script
Scripting
gaditano28 1 1,970 Último mensaje 2 Marzo 2015, 03:26 am
por engel lex
Ayuda con este script de selenium IDE
Programación General
RubenLL 0 1,851 Último mensaje 17 Marzo 2023, 08:46 am
por RubenLL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines