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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH][DUDA] Algún equivalente de EDLINE para sistemas de 64bits?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH][DUDA] Algún equivalente de EDLINE para sistemas de 64bits?  (Leído 3,009 veces)
paideier

Desconectado Desconectado

Mensajes: 5


Ver Perfil
[BATCH][DUDA] Algún equivalente de EDLINE para sistemas de 64bits?
« en: 3 Febrero 2013, 23:50 pm »

Estoy trabajando en un encriptador de textos en batch y esta casi terminado, pero quiero agregarle la opción de cifrar un texto extraído desde un archivo .txt... Hasta ahora tengo lo siguiente:

Código:
set /p txtname=Escriba el nombre del archivo: 
echo :frkript>temp.txt
for /f "tokens=*" %%x in ('type %txtname%.txt') do (echo set frkriptxt=%%x) >> temp.txt
rename temp.txt temp.bat
call temp.bat :frkript

Ese es un fragmento del código del programa entero, pero este es el que uso para extraer el texto de un .txt e insertarlo en una variable.

Mi problema es que cuando el texto tiene más de una línea, sólo la última línea es incluida dentro de la variable.
Eso supongo por --> "tokens=*"

Entonces una de las soluciones que se me ocurrieron, fue la de mover todas las líneas a la primera... Buscando encontré un post en el foro http://foro.elhacker.net/scripting/acciones_sobre_archivos_de_texto_batch-t242748.0.html y hay refencia a algo similar pero ejecutando el comando EDLINE el cual no está disponible en sistemas de 64bits, y por supuesto yo trabajo en windows 7 x64.

Me gustaría saber si existe un equivalente a ese comando o si se les ocurre otra manera de conseguir lo que quiero. De antemano gracias.

Saludos


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: [BATCH][DUDA] Algún equivalente de EDLINE para sistemas de 64bits?
« Respuesta #1 en: 4 Febrero 2013, 01:00 am »

Mi primera pregunta es: ¿Porque crees necesitar almacenar el contenido del archivo de texto en una variable?, pienso que podrías cifrar línea a línea el contenido del texto, es decir:

  • obtienes la primera línea
  • la cifras
  • la guardas en un archivo temporal
  • obtienes la siguiente línea
  • la cifras
  • la añades al archivo temporal

etc...

De todas formas si para tí no es viable, voy a mostrarte como hacerlo de la forma que has planteado.

Puedes hacerlo recurriendo a nefastos trucos para añadir nuevas líneas en la variable y adjuntar el texto, esto es el limitado Batch, no hay otra forma de hacerlo, sería así:

Código:
@Echo OFF
setlocal EnableDelayedExpansion
set NewLine=^


Set /P "File=Escriba el nombre del archivo >> "
Echo "%File%" | FIND /I ".txt" || (Set "File=%File%.txt")

For /F "usebackq tokens=*" %%# in ("%File%") do (Set "FileContent=!FileContent!!NewLine!%%#")
Echo: !FileContent!
Pause&Exit

Eso es para hacer lo que pides, pero yo te propongo esto:

Código
  1. @Echo OFF
  2.  
  3. Set /P "File=Escriba el nombre del archivo >> "
  4. Echo "%File%" | FIND /I ".txt" || (Set "File=%File%.txt")
  5.  
  6. For /F "usebackq tokens=*" %%# in ("%File%") do (Call :Cifrar "%%#")
  7. Pause&Exit
  8.  
  9. :Cifrar
  10. Echo "%~1"
  11. Rem Esta subrutina procesa una a una cada línea del archivo...
  12. Rem aquí debes hacer las operaciones en el string recibido, es decir, lo cifras...
  13. Rem y almacenas la línea cifrada en un archivo temporal...
  14. Echo "%VARIABLE%" >> "%TEMP%\Temp.bat"
  15. GOTO:EOF

Saludos


« Última modificación: 4 Febrero 2013, 01:31 am por EleKtro H@cker » En línea



paideier

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: [BATCH][DUDA] Algún equivalente de EDLINE para sistemas de 64bits?
« Respuesta #2 en: 4 Febrero 2013, 01:18 am »

Te has pasado... Ahora entiendo pq estás tan bien valorado en el mundo del BATCH...

Te lo agradezco mucho

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Hay algún ecualizador para sistemas 5.1?
Multimedia
[.:: NauJFracT ::.] 0 2,173 Último mensaje 22 Abril 2007, 11:38 am
por [.:: NauJFracT ::.]
Algun link para descargar sistemas operativos para VMWARE
Software
jejeey3477 3 4,452 Último mensaje 24 Abril 2011, 01:38 am
por WHK
Existe algun corrector de sintaxis para batch?
Scripting
bITEBUG 2 5,391 Último mensaje 23 Mayo 2011, 02:46 am
por bITEBUG
¿Algún renombrador de archivos para batch?
Scripting
Eleкtro 0 2,505 Último mensaje 30 Noviembre 2011, 07:40 am
por Eleкtro
Equivalente shell de este batch.
GNU/Linux
Slazar 2 2,378 Último mensaje 25 Noviembre 2012, 14:33 pm
por Slazar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines