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
| | |-+  Acciones sobre archivos de texto. [Batch]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 35 Ir Abajo Respuesta Imprimir
Autor Tema: Acciones sobre archivos de texto. [Batch]  (Leído 429,527 veces)
M_A_R_T_I_N

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #50 en: 14 Marzo 2010, 23:01 pm »

Añade "^" antes del carácter.

Para EDLIN no es válido.

Hola, abria alguna manera de hacerlo o bien de borrar las comillas despues de reemplazado el texto?
Muchas Gracias.


En línea

wajagaum

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #51 en: 18 Marzo 2010, 18:25 pm »

ho la tengo un archio .qrp lo edito con notepad. quisiera saber si con el batch yo puedo mostrar un nuemro que esta dentro del archivo y  pedir un nuevo nuemro en pantalla y el archivo bat busque dentro del archivo .qrp los que hayan y reemplazarlo por el pedido en pantalla.

texto:

Código:
Begin Column
   FieldName = "Promedio"
   DrillDownFieldName = ""
   DrillDownReportName = ""
   StoreIDFieldName = ""
   Title = "Promedio"
   VBDataType = vbDouble
   Formula = "SUM(TransactionEntry.Quantity)/3"
   ColHidden = False
   ColNotDisplayable = False
   FilterDisabled = False
   ColWidth = 990
   GroupMethod = groupmethodNone
   ColFormat = "#"
   ColAlignment = flexAlignLeftCenter
End Column

Begin Column
   FieldName = "VtaPromedio"
   DrillDownFieldName = ""
   DrillDownReportName = ""
   StoreIDFieldName = ""
   Title = "Venta Prom"
   VBDataType = vbCurrency
   Formula = "SUM(TransactionEntry.Price * (TransactionEntry.Quantity/3))"
   ColHidden = False
   ColNotDisplayable = False
   FilterDisabled = False
   ColWidth = 1425
   GroupMethod = groupmethodSum
   ColFormat = ""
End Column



y quiero mestrar "/3" y pedir otro numero por ejemplo "/n" y reemplazarlo.

te agradecia mucho tu ayuda.


« Última modificación: 29 Mayo 2010, 02:39 am por Leo Gutiérrez. » En línea

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

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #52 en: 18 Marzo 2010, 23:39 pm »

Añade "^" antes del carácter.

Para EDLIN no es válido.

Hola, abria alguna manera de hacerlo o bien de borrar las comillas despues de reemplazado el texto?
Muchas Gracias.

Con edlin vas a seguir teniendo problemas.

Así que te recomiendo sed para Windows, con una expresión regular bastaría.
En línea

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

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #53 en: 19 Marzo 2010, 00:41 am »

@wajagaum

¿Cambiar estas líneas?

Código:
   Formula = "SUM(TransactionEntry.Quantity)/3"
   Formula = "SUM(TransactionEntry.Price * (TransactionEntry.Quantity/3))"

En línea

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

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #54 en: 19 Marzo 2010, 04:00 am »

Si es lo que querías, te tengo esta respuesta:

Supongamos que tenemos el archivo siguiente(yo lo llamé "file.txt":

Código:
Begin Column
   FieldName = "Promedio"
   DrillDownFieldName = ""
   DrillDownReportName = ""
   StoreIDFieldName = ""
   Title = "Promedio"
   VBDataType = vbDouble
   Formula = "SUM(TransactionEntry.Quantity)/3"
   ColHidden = False
   ColNotDisplayable = False
   FilterDisabled = False
   ColWidth = 990
   GroupMethod = groupmethodNone
   ColFormat = "#"
   ColAlignment = flexAlignLeftCenter
End Column

Begin Column
   FieldName = "VtaPromedio"
   DrillDownFieldName = ""
   DrillDownReportName = ""
   StoreIDFieldName = ""
   Title = "Venta Prom"
   VBDataType = vbCurrency
   Formula = "SUM(TransactionEntry.Price * (TransactionEntry.Quantity/3))"
   ColHidden = False
   ColNotDisplayable = False
   FilterDisabled = False
   ColWidth = 1425
   GroupMethod = groupmethodSum
   ColFormat = ""
End Column

Lo trabajaremos sin espacios, para no tener conflicto con los ciclos FOR.

El script que hice, cuenta las ocurrencias, y te va pidiendo qué escribir en la línea en donde se dió la ocurrencia, algo así:

Código:
C:\>lala.bat
1 : leito
2 : gutierrez

Begin Column
   FieldName = "Promedio"
   DrillDownFieldName = ""
   DrillDownReportName = ""
   StoreIDFieldName = ""
   Title = "Promedio"
   VBDataType = vbDouble
   Formula = "SUM(TransactionEntry.Quantity)/leito"
   ColHidden = False
   ColNotDisplayable = False
   FilterDisabled = False
   ColWidth = 990
   GroupMethod = groupmethodNone
   ColFormat = "#"
   ColAlignment = flexAlignLeftCenter
End Column
Begin Column
   FieldName = "VtaPromedio"
   DrillDownFieldName = ""
   DrillDownReportName = ""
   StoreIDFieldName = ""
   Title = "Venta Prom"
   VBDataType = vbCurrency
   Formula = "SUM(TransactionEntry.Price * (TransactionEntry.Quantity/gutierrez))"
   ColHidden = False
   ColNotDisplayable = False
   FilterDisabled = False
   ColWidth = 1425
   GroupMethod = groupmethodSum
   ColFormat = ""
End Column

C:\>

En este caso solo me pidió de 1 a 2, porque solo hubo dos ocurrencias de tipo: /3.

Aquí está el script:
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a "count=0"
  4. for /f "tokens=1" %%_ in ('type "file.txt" ^| findstr /v "^$" ^| findstr /r /i /n ".*\/[0-9]" ^| find /v /c ""') do (
  5. set "n_numbers=%%_";
  6. )
  7. set /a count=1
  8. for /f "tokens=1 delims=:" %%a in ('type "file.txt" ^| findstr /v "^$" ^| findstr /r /i /n ".*\/[0-9]"') do (
  9. set "ocurrencia[!count!]=%% style="color: #448888;">a";
  10. set /a count+=1
  11. )
  12. :code
  13. for /l %%_ in (1, 1, %n_numbers%); do (
  14. set /p "string_c[%%_]=%%_ : !!
  15. if not defined string_c[%%_] (goto:code)
  16. );
  17. for /f "tokens=1" %%_ in ('type "file.txt" ^| findstr /r /v "^$" ^| find /v /c ""') do (
  18. set "n_lines=%%_"
  19. )
  20. set /a n_lines+=1
  21. set /a count=1
  22. set /a count_str=1
  23. set /a i=1
  24. :show
  25. if !count! equ !n_lines! (goto:eof) else (
  26. if !count! equ !ocurrencia[% style="color: #448888;">i%]! (set /a "i+=1")
  27. findstr /v /r "^$" file.txt | sed -n "!count!p" | sed "s/\/[0-9]*/\/!string_c[% style="color: #448888;">i%]!/g"
  28. )
  29. set /a count+=1
  30. goto:show

Por cierto, necesitas sed para Windows, hacerlo con windows solamente sería un engorro.
En línea

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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #55 en: 19 Marzo 2010, 21:16 pm »

Brothers te cuento que no funciona solo ejecuto el bat, me pide los valores pero no actualiza a los nuevos escritos en pantalla que debo hacer.  :D
En línea

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

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #56 en: 19 Marzo 2010, 23:06 pm »

Brothers te cuento que no funciona solo ejecuto el bat, me pide los valores pero no actualiza a los nuevos escritos en pantalla que debo hacer.  :D

Ponme el script que estás usando, el archivo de texto que quieres editar, dime que es exactamente que es lo que quieres editar y si puedes ponme una captura de pantalla.

El script lo he probado y a mi sí me funciona.
En línea

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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #57 en: 20 Marzo 2010, 15:35 pm »

ok mira, lo que yo quiero es que un bat, me muestre que numero hay en la fila # x y en la fila #, Y que pida reemplazarlo por un numero nuevo y lo reemplce:

el texto es este mira...
nota: no es .txt es .qrp


Mi caso es que quiero que me muestre que numero hay despues del / que son la cantidad de meses y cuando me toque cambiarlo me muestre cuantos meses hay y pueda cambiarlo a lli mismo.


//--- Report Summary --- //

Begin ReportSummary
   ReportType = reporttypeSales
   ReportTitle = "Reporte Ventas Compras"
   PageOrientation = pageorientationPortrait
   WordWrap = False
   ShowDateTimePicker = True
   OutLineMode = True
   Groups = 0
   GroupDescription = ""
   DisplayLogo = True
   LogoFileName = "Walter Galvez"
   ProcedureCall = ""
   PreQuery1 = ""
   PreQuery2 = ""
   TablesQueried = <BEGIN>

      FROM        TransactionEntry WITH(NOLOCK) 
      INNER JOIN  [Transaction] WITH(NOLOCK)
                  ON TransactionEntry.TransactionNumber = [Transaction].TransactionNumber
                  AND TransactionEntry.StoreID = [Transaction].StoreID
      LEFT JOIN   Item WITH (NOLOCK)
                  ON TransactionEntry.ItemID = Item.ID
      LEFT JOIN   Department WITH(NOLOCK)
                  ON Item.DepartmentID = Department.ID
      LEFT JOIN   Category WITH(NOLOCK)
                  ON Item.CategoryID = Category.ID
      LEFT JOIN   Supplier WITH(NOLOCK)
                  ON Item.SupplierID = Supplier.ID
      LEFT JOIN   WGPadres WITH(NOLOCK)
        ON Item.ParentItem = WGPadres.Id
      LEFT JOIN   WGQtyCD WITH(NOLOCK)
        ON Item.Id = WGQtyCD.ItemId
      LEFT JOIN   Store ON TransactionEntry.StoreID = Store.ID

<END>
   SelCriteria = ""
   GroupBy = "Item.ItemLookupCode"
   SortOrder = "Depto, ItemDescription"
End ReportSummary


//--- Title Rows ---//

Begin TitleRow
   Text = "<Store Name>"
   Font = "Arial"
   FontBold = True
   FontSize = 16
   Color = "Blue"
End TitleRow

Begin TitleRow
   Text = "<Report Title>"
   Font = "Arial"
   FontBold = True
   FontSize = 12
   Color = "Black"
End TitleRow

Begin TitleRow
   Text = "Generated On <Report Date>"
   Font = "Arial"
   FontBold = True
   FontSize = 10
   Color = "Black"
End TitleRow


//--- Filters ---//

Begin Filter
   FieldName = "[Transaction].Time"
   FilterOp = reportfilteropBetween
   FilterLoLim = "15/01/2010"
   FilterHilim = "16/03/2010"
   FilterNegated = False
   FilterConnector = reportfilterbooleanconAND
End Filter


//--- Columns ---//

Begin Column
   FieldName = "Promedio"
   DrillDownFieldName = ""
   DrillDownReportName = ""
   StoreIDFieldName = ""
   Title = "Promedio"
   VBDataType = vbDouble
   Formula = "SUM(TransactionEntry.Quantity)/3"
   ColHidden = False
   ColNotDisplayable = False
   FilterDisabled = False
   ColWidth = 990
   GroupMethod = groupmethodNone
   ColFormat = "#"
   ColAlignment = flexAlignLeftCenter
End Column

Begin Column
   FieldName = "VtaPromedio"
   DrillDownFieldName = ""
   DrillDownReportName = ""
   StoreIDFieldName = ""
   Title = "Venta Prom"
   VBDataType = vbCurrency
   Formula = "SUM(TransactionEntry.Price * (TransactionEntry.Quantity/3))"
   ColHidden = False
   ColNotDisplayable = False
   FilterDisabled = False
   ColWidth = 1425
   GroupMethod = groupmethodSum
   ColFormat = ""
End Column
En línea

M_A_R_T_I_N

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #58 en: 28 Marzo 2010, 23:24 pm »

Añade "^" antes del carácter.

Para EDLIN no es válido.

Hola, abria alguna manera de hacerlo o bien de borrar las comillas despues de reemplazado el texto?
Muchas Gracias.

Con edlin vas a seguir teniendo problemas.

Así que te recomiendo sed para Windows, con una expresión regular bastaría.


1000 Gracias!!! Funciona ok!!!
En línea

KamuiDNA

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #59 en: 22 Abril 2010, 23:20 pm »

Hola, tengo una duda, realize un proceso en Batch que me efectua el despliegue de datos de una base de lluvia por dia,  el proceso funciona bien  y esta probado en windows vista y XP, pero al montarlo en windows server 2003 este solo ejecuta la mitad del programa y lo cierra, no me marca ningun error ni nada, solo hace como que lo ejecuta pero no ejecuta todo el proceso, alguna idea o sugerencia.
En línea

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 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,057 Último mensaje 20 Septiembre 2011, 16:33 pm
por Poderoscuro1207
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto
Scripting
Eleкtro 2 7,597 Ú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,401 Ú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