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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Acciones sobre archivos de texto. [Batch]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 Ir Abajo Respuesta Imprimir
Autor Tema: Acciones sobre archivos de texto. [Batch]  (Leído 429,574 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #270 en: 16 Septiembre 2013, 17:28 pm »

Lo que yo no entiendo es: ¿En la carpeta "Extensiones" deben ir todos los archivos sin importar la extension?, si fuese así entonces que le encuentras de beneficioso?, sería simplemente una copia nula (tamaño cero) de los mismo archivos.

¿O acaso quieres un txt por cada extension?, dentro de la carpeta "Extensiones".

Hice este código que genera una carpeta "Extensiones" por cada directorio y subdirectorio, dentro de la carpeta "Extensiones" se genera una serie de archivos "LOG" con el nombre de cada extension (Ejemplo: .avi.log), y dentro de cada archivo log están registrados los archivos de dicha extension.

Código
  1. @Echo OFF
  2. REM By Elektro H@cker
  3.  
  4. Set "Extensions="
  5.  
  6. :: No usar FOR /D /R para no crear conflictos en tiempo de ejecución entre el otro FOR al procesar carpetas.
  7. For /F "Delims=" %%D in ('DIR /B /S /AD "%CD%\*"') Do (Call :List "%%D")
  8. Echo [+] Terminado!
  9. Pause&Exit
  10.  
  11. :List
  12. Echo Procesando directorio "%~1"
  13. MKDIR "%~1\Extensiones" 2>NUL
  14.  
  15. FOR %%IN ("%~1\*.*") DO (
  16. Call Echo "%%Extensions%%!!|%%~x€" 1>NUL || (
  17. Call Set "Extensions=%%Extensions%%!!%%~x€"
  18. Echo Procesando archivos "%%~x€"
  19. (FOR %%# IN ("*%%~x€") DO (Echo %%#))>"%~1\Extensiones\%%~x€.log"
  20. )
  21. )
  22.  
  23. Echo+ | MORE
  24. Set "Extensions="
  25. GOTO:EOF

Saludos



« Última modificación: 16 Septiembre 2013, 18:03 pm por EleKtro H@cker » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #271 en: 16 Septiembre 2013, 17:50 pm »

Código
  1. @echo off
  2. if not exist extensiones (
  3.    mkdir "extensiones" && (
  4.        echo Directorio "extensiones" creado
  5.    )
  6. )
  7. for /f "tokens=*" %%_ in ('dir /b /a-d .') do (
  8.    echo. 2> "extensiones\%%_"
  9. )
  10. pause

Prueba ese código, el .bat tiene que estar en el mismo directorio donde están tus .xls, .avi, .flv, etc.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Pédrin-2

Desconectado Desconectado

Mensajes: 171



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #272 en: 16 Septiembre 2013, 18:52 pm »

Fantastico Leo justo lo que necesitaba

Hola EleKtro H@cker, gracias por tu interes.

Un Saludo a los dos
En línea

Pido disculpas por las pifias que pueda decir. el unico fin es ayudar y aprender.
        Un Saludo
MauriH

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #273 en: 17 Septiembre 2013, 21:10 pm »

Hola @MauriH

¿Podrías por favor un ejemplo de cómo quisieras la salida del archivo final o de lo que quisieras obtener?

Es que no me queda claro como quieres relacionar el archivo de preguntas y de respuestas con un archivo final.

Saludos.

Hola Leo, en mi anterior consulta te puse el ejemplo del archivo final, de pronto no lo viste por q esta todo muy junto, aqui te lo pongo de nuevo:

Archivo de preguntas:

1. El masaje cardiaco externo:
• No se realiza en recién nacidos
• Se realiza en la mitad superior del esternón en el adulto
• Produce un flujo sanguíneo 25 % del normal
• No esta indicado en la fibrilación ventricular sostenida
• Todas las anteriores

2. La administración intracardiaca de drogas durante RCP:
• Requiere mayor dosis de drogas
• Puede producir lesión irreversible en el corazón
• Es la vía de elección en la reanimación a tórax abierto
• La vía de abordaje es paraesternal izquierda
• Todas son ciertas

3. La adrenalina:
• Posee efecto beta predominante
• Se sintetiza en el hígado
• Tiene mayor efecto en la acidosis metabolica
• Aumenta la presión de perfusión durante la RCP
• Todas

4. Para diagnosticar la circulación ineficaz:
• El ECG es el método de elección
• Palpar el pulso en la arteria femoral o carótida
• Se han descrito alteraciones en el metabolismo de los ácidos grasos libres
• Ausencia de reflejos fotomotores
• Todas

5. En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable:
• Solicitar un ECG de rutina
• Abetalipoproteinemia
• Realizar un examen clínico completo
• Solicitar un coagulograma de rutina
• Todas


Archivo de respuestas:

Respuesta de la pregunta 1 :• Todas las anteriores
Respuesta de la pregunta 2 :• Todas son ciertas
Respuesta de la pregunta 3 :• Se sintetiza en el hígado
Respuesta de la pregunta 4 :• Se han descrito alteraciones en el metabolismo de los ácidos grasos libres
Respuesta de la pregunta 5 :• Abetalipoproteinemia

Nota. El texto q aparece en cursiva, realmente no aparece en mis archivos de texto, solo lo puse de un modo aclaratorio.


Archivo Final

1. El masaje cardiaco externo:
• No se realiza en recién nacidos
• Se realiza en la mitad superior del esternón en el adulto
• Produce un flujo sanguíneo 25 % del normal
• No esta indicado en la fibrilación ventricular sostenida
monordi1Todas las anterioresmonordi2

2. La administración intracardiaca de drogas durante RCP:
• Requiere mayor dosis de drogas
• Puede producir lesión irreversible en el corazón
• Es la vía de elección en la reanimación a tórax abierto
• La vía de abordaje es paraesternal izquierda
monordi1Todas son ciertasmonordi2

3. La adrenalina:
• Posee efecto beta predominante
monordi1Se sintetiza en el hígadomonordi2
• Tiene mayor efecto en la acidosis metabolica
• Aumenta la presión de perfusión durante la RCP
• Todas

4. Para diagnosticar la circulación ineficaz:
• El ECG es el método de elección
• Palpar el pulso en la arteria femoral o carótida
monordi1Se han descrito alteraciones en el metabolismo de los ácidos grasos libresmonordi2
• Ausencia de reflejos fotomotores
• Todas

5. En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable:
• Solicitar un ECG de rutina
monordi1Abetalipoproteinemiamonordi2
• Realizar un examen clínico completo
• Solicitar un coagulograma de rutina
• Todas

La idea es leer una por una las líneas de un archivo (el archivo de respuestas) y buscarlas en otro archivo (el archivo de preguntas) y poner una palabra delante y otra detras de cada coincidencia. Por si acaso uso Windows7, gracias de antemano. Un saludo.
« Última modificación: 18 Septiembre 2013, 16:07 pm por MauriH » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #274 en: 23 Septiembre 2013, 20:33 pm »

@MauriH

Código
  1. @Echo OFF
  2.  
  3. Set "Questions=C:\Preguntas.txt"
  4. Set "Answers=C:\Respuestas.txt"
  5.  
  6. Set "Prefix=nothing"
  7. Set "Suffix=nothing"
  8.  
  9. FOR /F "Usebackq Delims=" %%R IN ("%Answers%") DO (
  10. FOR /F "Usebackq Delims=" %%P IN ("%Questions%") DO (
  11. (
  12. If /I "%%R" EQU "%%P" (Echo %PREFIX%%%P%SUFFIX%) Else (Echo %%P)
  13. )>>"%TEMP%\Questions.tmp"
  14. )
  15. Move /Y "%TEMP%\Questions.tmp" "%Questions%" 1>NUL || (Echo ERROR al reemplazar archivo & Goto :OnError)
  16. )
  17.  
  18. :OnError
  19. Pause&Exit

PD: Antes de usar haz una copia del archivo original por precaución.

Saludos!
« Última modificación: 23 Septiembre 2013, 20:35 pm por EleKtro H@cker » En línea

MauriH

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #275 en: 24 Septiembre 2013, 00:47 am »

@MauriH

Código
  1. @Echo OFF
  2.  
  3. Set "Questions=C:\Preguntas.txt"
  4. Set "Answers=C:\Respuestas.txt"
  5.  
  6. Set "Prefix=nothing"
  7. Set "Suffix=nothing"
  8.  
  9. FOR /F "Usebackq Delims=" %%R IN ("%Answers%") DO (
  10. FOR /F "Usebackq Delims=" %%P IN ("%Questions%") DO (
  11. (
  12. If /I "%%R" EQU "%%P" (Echo %PREFIX%%%P%SUFFIX%) Else (Echo %%P)
  13. )>>"%TEMP%\Questions.tmp"
  14. )
  15. Move /Y "%TEMP%\Questions.tmp" "%Questions%" 1>NUL || (Echo ERROR al reemplazar archivo & Goto :OnError)
  16. )
  17.  
  18. :OnError
  19. Pause&Exit

PD: Antes de usar haz una copia del archivo original por precaución.

Saludos!

Hola, me parece muy bueno el codigo, gracias por la pronta respuesta  ;-), nada más tengo el problema de q busca cada linea del archivo de respuestas en todo el archivo de preguntas y marca todas las coincidencias, y eso no es bueno ya q muchas veces las opciones se repiten en varias preguntas (por ejemplo la ultima opción en las preguntas 3, 4 y 5) y no necesariamente son correctas todas, eso provoca q se marquen 2 o más opciones como correctas. Lo q quisiera es q una vez q encontró una coincidencia ya no siga buscando y pase a buscar la siguiente linea del archivo de respuestas, en el archivo de preguntas, pero q continue buscando a partir de donde se quedó en archivo de preguntas y no desde el principio.
No sé si me explique correctamente y tampoco sé si tal cosa es posible, espero vuestras respuestas. Muchas gracias por la ayuda.
« Última modificación: 24 Septiembre 2013, 00:49 am por MauriH » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #276 en: 24 Septiembre 2013, 08:34 am »

@MauriH

Es decir,  por poner un ejemplo, si tienes un archivo de preguntas de 200 lineas, y un archivo de respuestas con dos respuestas (2 lineas) donde la primera coincidencia de la primera respuesta (linea 1) coincide con la linea 190 del archivo de preguntas, ¿entonces la respuesta 2 debería empezar a buscar desde esa linea 190?.

Saludos
En línea

MauriH

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #277 en: 24 Septiembre 2013, 16:35 pm »

@EleKtro H@cker

Pues verás básicamente si, esa es una de las ideas q tuve para evitar q se marcaran por error dos opciones como correctas en una misma pregunta. La otra idea es q una vez q sea encontrada una coincidencia en el archivo de preguntas, ya no siga buscando, por que ahorita eso es lo q hace, busca una linea en todo el archivo de preguntas y marca todas las coincidencias q encuentra, pero yo quisiera q solo marque la primera y así se evitaría marcar otras opciones q no son correctas, y si se podría hacer q la segunda linea del archivo de preguntas comenzase a buscar partir de la coincidencia marcada por la primera seria genial, bueno eso es lo q se me ocurrió, pero en verdad no pude lograrlo escribiendo código, recién llevo poco tiempo practicando batch. Es q como te dije hay muchas opciones q se repiten en el archivo de preguntas y no necesariamente son correctas. Hay q tener en cuenta q todas las preguntas tienen una sola opción correcta y q hay exactamente la misma cantidad de preguntas en el archivo de preguntas como lineas en el archivo de respuestas, por ejemplo si tengo 600 preguntas, tengo 600 respuestas (en 600 lineas) y estas están en el mismo orden.
 :¬¬ Gracias.

PD. Te parece si te envío los archivos de preguntas y respuestas para q puedas ver su estructura?
« Última modificación: 24 Septiembre 2013, 16:51 pm por MauriH » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #278 en: 24 Septiembre 2013, 17:20 pm »

no pude lograrlo escribiendo codigo

Es facil, simula una variable Booleana para usarla como Flag:

Código
  1. @Echo OFF & Setlocal EnableDelayedExpansion
  2.  
  3.  
  4.  
  5. Set "Questions=C:\Preguntas.txt"
  6. Set "Answers=C:\Respuestas.txt"
  7.  
  8. Set "Prefix=nothing"
  9. Set "Suffix=nothing"
  10.  
  11. Set "IsMatch=False" & REM No tocar esta variable!
  12.  
  13.  
  14.  
  15. Del /Q "%TEMP%\Questions.tmp" 2>NUL
  16.  
  17. FOR /F "Usebackq Delims=" %%R IN ("%Answers%") DO (
  18.  
  19. FOR /F "Usebackq Delims=" %%P IN ("%Questions%") DO (
  20.  
  21. (If /I "%%R" EQU "%%P" (
  22. If /I "!IsMatch!" NEQ "True" (
  23. Echo %PREFIX%%%P%SUFFIX%
  24. ) Else (
  25. Echo %%P
  26. )
  27. Set "IsMatch=True"
  28. ) Else (
  29. Echo %%P
  30. ))>>"%TEMP%\Questions.tmp"
  31.  
  32. ) & REM # End For "%Questions%"
  33.  
  34. Set "IsMatch=False"
  35. Move /Y "%TEMP%\Questions.tmp" "%Questions%" 1>NUL 2>&1 || (Echo ERROR al reemplazar archivo & Goto :OnError)
  36.  
  37. ) & REM # End For "%Answers%"
  38.  
  39. :OnError
  40. Pause&Exit

Saludos!
« Última modificación: 24 Septiembre 2013, 17:24 pm por EleKtro H@cker » En línea

MauriH

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #279 en: 24 Septiembre 2013, 18:28 pm »

@EleKtro H@cker

Siento decirte q aun no me funciona como quisiera, me sigue marcando varias opciones como correctas en la misma pregunta, y algunas no me marco nada. Pienso q de pronto lo q esta haciendo es buscar la primera linea, encuentra la coincidencia y luego busca la segunda linea a partir de la primera coincidencia marcada, pero la tercera q deberia buscar a partir de la 2 coincidencia marcada sigue buscando a partir de la primera, no sé si me equivoco, pero aun estoy en problemas. Gracias por el interés, pero aún no doy con la solución, espero tu puedas.  :-[

Modifico:

Bueno acabo de revisar minuciosamente lo q hizo el codigo y me di cuenta de dos cosas, hizo lo q te dije en mi parrafo anterior, y la otra es q al parecer esto del Batch da para mucho, así q tuve una nueva idea para q eso no vuelva suceder, idea q por supuesto no podré lograr sin tu ayuda. Así q aqui te adjunto una extracto de ambos archivos tal y como son:


Preguntas.txt

#En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable:
• Solicitar un ECG de rutina
• Rx de tórax
• Realizar un examen clínico completo
• Solicitar un coagulograma de rutina
• Todas
#La detención súbita y completa de circulación se expresa:
• Midriasis a los 60 seg.
• Por pCO2 en sangre arterial baja
• Por acumulo de acido láctico en los tejidos periféricos
• Respiración boqueante o apnea
• Todas
#El masaje cardiaco externo puede producir un cierto grado de flujo sistémico y pulmonar por:
• Acción de la bomba cardiaca y torácica durante las compresiones
• Diferencias de presión entre la aurícula y el ventrículo
• Diferencias de presión aortico pulmonares
• Mecanismo valvular aortico
• Ninguna
#Cual es la conducta terapéutica en UTI en el síndrome de Stokes Adams:
• Atropina
• Beta adrenergicos
• Inserción de marcapaso definitivo
• Isoproterenol
• Todas
#La toxicidad de los anestésicos locales por lo general se debe:
• Uso de concentraciones altas de anestésicos
• Absorción rapida en un sitio vascularizado
• Inyección intravascular inadvertida
• Al uso de dosis excesivas
• Todas

Respuestas.txt

• Realizar un examen clínico completo
• Todas
• Acción de la bomba cardiaca y torácica durante las compresiones
• Isoproterenol
• Todas

Mi Archivo de salida fue:

#En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable:
• Solicitar un ECG de rutina
• Rx de tórax
nothing• Realizar un examen clínico completonothing
• Solicitar un coagulograma de rutina
nothing• Todasnothing
#La detención súbita y completa de circulación se expresa:
• Midriasis a los 60 seg.
• Por pCO2 en sangre arterial baja
• Por acumulo de acido láctico en los tejidos periféricos
• Respiración boqueante o apnea
nothing• Todasnothing
#El masaje cardiaco externo puede producir un cierto grado de flujo sistémico y pulmonar por:
nothing• Acción de la bomba cardiaca y torácica durante las compresionesnothing
• Diferencias de presión entre la aurícula y el ventrículo
• Diferencias de presión aortico pulmonares
• Mecanismo valvular aortico
• Ninguna
#Cual es la conducta terapéutica en UTI en el síndrome de Stokes Adams:
• Atropina
• Beta adrenergicos
• Inserción de marcapaso definitivo
nothing• Isoproterenolnothing
• Todas
#La toxicidad de los anestésicos locales por lo general se debe:
• Uso de concentraciones altas de anestésicos
• Absorción rapida en un sitio vascularizado
• Inyección intravascular inadvertida
• Al uso de dosis excesivas
• Todas

Archivo Final requerido:

#En la evaluación preoperatoria de un paciente ASA I de 30 años es indispensable:
• Solicitar un ECG de rutina
• Rx de tórax
nothing• Realizar un examen clínico completonothing
• Solicitar un coagulograma de rutina
• Todas
#La detención súbita y completa de circulación se expresa:
• Midriasis a los 60 seg.
• Por pCO2 en sangre arterial baja
• Por acumulo de acido láctico en los tejidos periféricos
• Respiración boqueante o apnea
nothing• Todasnothing
#El masaje cardiaco externo puede producir un cierto grado de flujo sistémico y pulmonar por:
nothing• Acción de la bomba cardiaca y torácica durante las compresionesnothing
• Diferencias de presión entre la aurícula y el ventrículo
• Diferencias de presión aortico pulmonares
• Mecanismo valvular aortico
• Ninguna
#Cual es la conducta terapéutica en UTI en el síndrome de Stokes Adams:
• Atropina
• Beta adrenergicos
• Inserción de marcapaso definitivo
nothing• Isoproterenolnothing
• Todas
#La toxicidad de los anestésicos locales por lo general se debe:
• Uso de concentraciones altas de anestésicos
• Absorción rapida en un sitio vascularizado
• Inyección intravascular inadvertida
• Al uso de dosis excesivas
nothing• Todasnothing

Mi idea es la siguiente:
Como ves todas las opciones comienzan con una Viñeta (•), las preguntas en cambio tienen el simbolo numeral (#). Entonces quisiera poder hacer q el batch busque la primera linea de Respuestas.txt en Preguntas.txt, desde la primera linea q comience con #, y marque la primera coincidencia, luego q busque la segunda linea de Respuestas.txt desde la 2° linea q comience con # en preguntas.txt, y luego la tercera y así sucesivamente. Gracias por toda la ayuda, disculpa las molestias, te estaré eternamente agradecido.

Saludos.
« Última modificación: 24 Septiembre 2013, 19:26 pm por MauriH » En línea

Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28] 29 30 31 32 33 34 35 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificar archivos de texto [batch] [Perl] « 1 2 »
Scripting
bjeli1980 10 13,102 Último mensaje 17 Mayo 2010, 09:07 am
por bjeli1980
[BATCH] Ayuda guardando archivos de texto a php
Scripting
Geormarsch 2 4,059 Último mensaje 20 Septiembre 2011, 16:33 pm
por Poderoscuro1207
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto
Scripting
Eleкtro 2 7,599 Último mensaje 15 Marzo 2014, 15:17 pm
por FranciskoAsdf
Como puedo arrastrar y concatenar archivos de texto en un BATCH
Scripting
PUCH84 6 9,402 Último mensaje 28 Abril 2014, 09:49 am
por PUCH84
Ayuda con batch para crear archivos de texto plano
Scripting
seu230 6 2,742 Último mensaje 5 Octubre 2018, 10:28 am
por seu230
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines