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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  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 ... 35 Ir Abajo Respuesta Imprimir
Autor Tema: Acciones sobre archivos de texto. [Batch]  (Leído 442,754 veces)
dazofeifa

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #30 en: 26 Noviembre 2009, 21:59 pm »

Hola, no encontré algo parecido a lo que ocupo: requiero tomar un archivo de texto generado por un Backup y extraer de él una parte de texto de una las lineas, para luego tomar esa parte del texto para realizar otra acción, específicamente, es el nombre y ruta de los archivos que no se pudieron respaldar porque están en uso, para luego con este nombre de archivo y su ruta, llamar a otro tipo de backup que funciona aunque los archivos estén bloqueados. He logrado extraer del log la línea donde muestra el error (con for y findstr y asignando valor a variable) pero, no se cómo sacar de ella sólo lo que necesito.  Eje:
La linea extraída es:
Código:
2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst
yo solo ocupo : D:\Respaldo\out\res.pst (este dato es variable de acuerdo al archivo que esté bloqueado).

Agradezco su ayuda.


« Última modificación: 27 Noviembre 2009, 02:39 am por Leo Gutierrez. » En línea

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

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #31 en: 27 Noviembre 2009, 02:53 am »

¿Qué código has utilizado para obtener esta línea?:
Código:
2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst


En línea

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


Desconectado Desconectado

Mensajes: 584



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #32 en: 27 Noviembre 2009, 13:25 pm »

dazofeifa deberias usar la extraccion de caracteres es
Citar
nos permita obtener "trozos" de variables llamados subcadenas, existen varias formas para ello, siendo la principal:
Código:
Código:
SET VariableResultado=%VariableOriginal:~m,n%

Almacena en la VariableResult ado la subcadena que existen en la VariableOrigin al desde la posición "m" durante "n" caracteres.

En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #33 en: 27 Noviembre 2009, 17:18 pm »

En cualquier caso yo buscaría la solución en Perl, mira este ejemplo:

Código
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;
  4. open(FILE, q[<], "file.txt") or die("No se pudo acceder al archivo. $!\n");
  5. while(<FILE>)
  6. {
  7. if(/:/)
  8. {
  9. print(split(/.*File\s/, $_));
  10. }
  11. }
  12. exit(0);
  13.  

Tengo este archivo de texto similar a lo que tu obtienes:
Código:
2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst
2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst
2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst
2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst
2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Respaldo\out\res.pst
2009/11/23 14:02:15 ERROR 33 (0x00000021) Copying File D:\Ruta espacios\etc jkalaksd\file.algo

Y lo que obtengo al ejecutar el script:

Código:
leo@lein:~/Escritorio$ perl pl.pl
D:\Respaldo\out\res.pst
D:\Respaldo\out\res.pst
D:\Respaldo\out\res.pst
D:\Respaldo\out\res.pst
D:\Respaldo\out\res.pst
D:\Ruta espacios\etc jkalaksd\file.algo
leo@lein:~/Escritorio$
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
<< Lucas, ¿quién más? >>

Desconectado Desconectado

Mensajes: 51


ANTI KIRCHNER- MONTONEROS - TERRORISTAS Y ASESINOS


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #34 en: 3 Diciembre 2009, 20:17 pm »

Buena información, justo que me estaba olvidando un poco de todo esto. Me viene al pelo en un trabajo que debo presentar
Saludos
En línea



Personalmente, prefiero tecnologías de Microsoft. Yo reconozco que defendí el software libre, pero ahora yo quiero vivir de esto. Mi trabajo.
carlosguay

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #35 en: 8 Diciembre 2009, 21:32 pm »

Ya que mi problema es de archivos de texto, lo pongo aqui por no abrir otro hilo.

Primero decir que gracias a este hilo, e podido solucionar muchas de las cosas que estoy haciendo com mis archivos, gracias a leo por este aporte.

Vereis tengo un problema que no se como solucionar con este archivo.

 
Citar
ad 55 6b b9   ad b6 ef ba   05 bc 36 9d   3c 86 43 38
  bf cf 2f bf   4a 8b d7 09   4d 02 41 00   bc c7 88 fd 
  f7 19 be aa   03 c6 18 ee   b3 2c b9 b8   73 89 0b 72 
  06 57 8b c9   77 b3 79 c3   4f 5f db 60   e7 89 bd 55 
  06 90 79 12   f6 84 67 b1   84 c4 dc 22   5b 3a 7f 45 
  ac 5d 14 7e   1d c6 b9 65   8f 6c 37 36| .].~...e.l76

LINEA CON TEXTO



Este archivo, en la parte de la derecha, lleva codigo acssi, que como veis no tengo problema en quitarlo, pero ya veis que en el penultimo renglon ya que la parte de hex no llega hasta el final, pues me deja parte del acssi.

Os pondria de las formas que e intentado quitar la ultima linea y la parte de acsii, pero ya se me an olvidado, xd, siempre consigo esto.


Citar

ad 55 6b b9 ad b6 ef ba 05 bc 36 9d 3c 86 43 38
bf cf 2f bf 4a 8b d7 09 4d 02 41 00 bc c7 88 fd
f7 19 be aa 03 c6 18 ee b3 2c b9 b8 73 89 0b 72
06 57 8b c9 77 b3 79 c3 4f 5f db 60 e7 89 bd 55
06 90 79 12 f6 84 67 b1 84 c4 dc 22 5b 3a 7f 45



Como veis no solo borro la ultima linea y la parte de acsii, sino que tambien borro la linea completa y se seguro que es por |, toma como ultima linea esa y eso es lo que pasa.

Pues si alquien me puede ayudar, me haria un gran favor.

saludos


En línea

pmabres

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #36 en: 14 Diciembre 2009, 14:41 pm »

Buenas... estoy en el trabajo intentando hacer un script para insertar datos desde archivos .dbf en una base de datos oracle... desde esos dbf puedo generar dos archivos .sql (uno que trae la creacion de tablas y otro que trae los inserts a hacer)... el problema que tengo ahora es que los insert deberian llevar el nombre de la tabla luego de la instruccion "insert into"... pero no hay nada. Casualmente el nombre de cada tabla es el nombre del archivo en donde se encuentra cada insert pero sin la extension .sql
mi pregunta es...
como hago para poner el nombre del archivo mismo en el que esta cada insert, luego de cada instruccion insert into
En línea

pmabres

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #37 en: 14 Diciembre 2009, 17:12 pm »

bueno pude hacer lo que queria pero lo que no puedo hacer ahora es cambiar el texto que quiero reemplazar por el texto que quiero reemplazar + una variable "que toma el nombre del archivo"

aca esta mi codigo....
Código:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type C:\MB\DATOS\MB\insert\*.sql') do (
for %%p in (C:\MB\DATOS\MB\Insert\*.sql) do (
set nombre=%%~np
set linea=%%x
set linea=!linea:INTO=INTO %nombre%!
call :show !linea!
))
goto:eof
:show
echo %nombre%
pause
echo %* >> C:\MB\DATOS\MB\insert\%nombre%.sql
goto:eof

En línea

pmabres

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #38 en: 14 Diciembre 2009, 19:56 pm »

Código:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=* delims=" %%x in ('type C:\MB\DATOS\MB\insert\final\*.sql') do (
for %%p in (C:\MB\DATOS\MB\Insert\final\*.sql) do (
set nombre=%%~np
set linea=%%x
set linea=!linea:INSERT INTO=INSERT INTO TMP_%%~np!
call :show !linea!
))
goto:eof
:show
echo %* >> C:\MB\DATOS\MB\insert\%nombre%.sql
goto:eof
con esto estaria solucionado el tema del nombre del archivo....

el tema es que inserta dos veces los datos en el mismo file... no saben como peudo hacer para solucionar esto?

ya se que hace dos veces el for, pero no encuentro la manera de sacar el nombre del archivo actual, y de usar el type para meter los datos en una variable
« Última modificación: 14 Diciembre 2009, 20:00 pm por pmabres » En línea

pmabres

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #39 en: 14 Diciembre 2009, 22:32 pm »

pude solucionarlo!... un poco rústico pero pude jeje... dejo el codigo por las dudas

Código:
@echo off
setlocal enabledelayedexpansion
for %%p in (C:\MB\DATOS\MB\Insert\orig\*.sql) do (
set nombre=%%~np
type %%~fp > temp.txt
for /f "tokens=* delims=" %%x in ('type temp.txt') do (
set linea=%%x
set linea=!linea:INSERT INTO=INSERT INTO TMP_%%~np!
call :show !linea!
))
goto:eof
:show
echo %* >> C:\MB\DATOS\MB\insert\temp\%nombre%.sql
goto:eof


lo que hice fue crear un archivo temporal, que luego se borrará
En línea

Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 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,657 Último mensaje 17 Mayo 2010, 09:07 am
por bjeli1980
[BATCH] Ayuda guardando archivos de texto a php
Scripting
Geormarsch 2 4,321 Último mensaje 20 Septiembre 2011, 16:33 pm
por Poderoscuro1207
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto
Scripting
Eleкtro 2 8,031 Ú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,920 Último mensaje 28 Abril 2014, 09:49 am
por PUCH84
Ayuda con batch para crear archivos de texto plano
Scripting
seu230 6 3,073 Último mensaje 5 Octubre 2018, 10:28 am
por seu230
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines