Ms-Dos - Reemplazar textos de archivo con MS DOS

 
Vista:
sin imagen de perfil

Reemplazar textos de archivo con MS DOS

Publicado por Sebastian (18 intervenciones) el 22/06/2014 19:19:14
Por favor, necesito de su ayuda.

tengo un archivo en la ruta y con nombre :

C:\Cambio\cambio.txt

Este archivo en todo su escrito puede tener uno o varias palabras que deseo cambiar.

Lo que pretendo es crear BAT que me busque todas las palabras que digan "Mañana" y la reemplacen por la palabra "Noche"

Imagino que tendrá que hacer un recorrido por todas las líneas para luego reemplazarlas, no lo se...


Desde ya gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Reemplazar textos de archivo con MS DOS

Publicado por Antoni Masana (811 intervenciones) el 24/06/2014 07:50:35
Espero te sirva:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@ECHO OFF
 
set File_Orig=C:\Cambio\Cambio.txt
set File_Dest=C:\Cambio\Cambio.tmp
 
if exist %File_Dest% del %File_Dest%
 
FOR /F "delims=·" %%a in (%File_Dest%) do call:Graba "%%a"
COPY %File_Dest% %File_Orig%
DEL  %File_Dest%
GOTO:EOF
 
:Graba
   set Reg=%1
   set Reg=%Reg:~1,-1%
   set Reg=%Reg:Mañana=Noche%
   echo %Reg%>>%File_Dest%
   goto:EOF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Reemplazar textos de archivo con MS DOS

Publicado por Sebastian (18 intervenciones) el 25/06/2014 00:56:42
Estimado Antoni.

Gracias por la atención prestada..

He ejecutado el BAT con la programación que me envías, pero non logra realizar los cambios de "mañana" a "Noche".

Tendría que cambiar algo????

Debo añadir que le puse una PAUSE para ver el error y me dice "el sistema no puede encontrar el archivo cambio.tmp "
imagino que lo esta eliminando antes que lo copie al original.

por otro lado al abrir el archivo tmp creado solo dice ""~1,-1""
es esto correcto???

Gracias por tu apoyo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Reemplazar textos de archivo con MS DOS

Publicado por Antoni Masana (811 intervenciones) el 25/06/2014 06:24:17
Hay un pequeño error

Esta marcado para que veas donde me equivoque.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@ECHO OFF
 
set File_Orig=C:\Cambio\Cambio.txt
set File_Back=C:\Cambio\Cambio.bak
set File_Dest=C:\Cambio\Cambio.tmp
 
IF exist %File_Back% del %File_Back%
IF exist %File_Dest% del %File_Dest%
 
FOR /F "delims=·" %%a in (%File_Orig%) do call:Graba "%%a"
 
REN  %File_Orig% %File_Back%
REN  %File_Dest% %File_Orig%
DEL  %File_Dest%
GOTO:EOF
 
:Graba
   set Reg=%1
   set Reg=%Reg:~1,-1%
   set Reg=%Reg:Mañana=Noche%
   echo %Reg%>>%File_Dest%
   goto:EOF


He añadido hacer una copia del Original
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Reemplazar textos de archivo con MS DOS

Publicado por sebastian (18 intervenciones) el 25/06/2014 06:56:12
Antoni.

acabo de probar el codigo; pero ahora me da el siguiente mensaje.

"la sintaxis del comando no es correcto"

Esto del DOS si que es un divertido rompecazesas... Jajaj.

Por favor, garcias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Reemplazar textos de archivo con MS DOS

Publicado por Antoni Masana (811 intervenciones) el 25/06/2014 11:19:40
Puedes enviarme el fichero CAMBIOS.TXT

Hay algún problema con el contenido.

La verdad es un rompecabezas pero de divertido tiene poco por que hay cosas que no hacen lo que se supone que hace o lo que esperas que hagan lo que dicen que hacen.

Como he dicho alguna otra vez en este foro u otro foro los señores de Microsoft nos deben de odiar profundamente o fuman algo que no se llama tabaco porque hay que ver el poco interés que le ponen en hacer las cosas bien.

Me recuerdan a Pepe Gotera y Otilio (si eres de España y tienes cierta edad creo que sabrás a que me refiero y si no busca en Google)

Si trabajas en UNIX o LINUX los scripts son una maravilla sobre todo si lo comparas con las posibilidades de los BAT del M-DOS

Hay algunos caracteres que dan problema, en la línea siguiente muestro algunos:

% < > " " ·

más espacios y líneas en blanco

Hay otra solución que no es nativa del MS-DOS pero funciona al 100 por 100.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Reemplazar textos de archivo con MS DOS

Publicado por Sebastian (18 intervenciones) el 25/06/2014 12:29:04
Antoni.

Gracias por tu atencion.

El internet que tengo no me permte adjuntar el archivo txt; pero los resgistros que tiene el archivo son los que detallo debajo, creo que si porfavor lo coipias y pegas me ayudaria...

Nuevamente gracias por la ayuda.

**********************************************************


Mañana, Tarde, Noche.

Mañana, noche


Noche, Mañana

***** Mañana****


Mañana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Reemplazar textos de archivo con MS DOS

Publicado por Sebastian (18 intervenciones) el 25/06/2014 22:43:23
Antoni..

Ya pude subir el archivo desde otra PC.

Por favor, gracias por tu ayuda...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Reemplazar textos de archivo con MS DOS

Publicado por Antoni Masana (811 intervenciones) el 26/06/2014 06:50:57
Como ya te comente el MS-DOS es una chapuza.

Este Script funciona perfectamente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@ECHO OFF
cls
set File_Orig=C:\Cambio\Cambio.txt
set File_Back=C:\Cambio\Cambio.bak
set File_Dest=C:\Cambio\Cambio.tmp
set File_Mawk=C:\Cambio\Cambio.tmp
 
echo {                         >%File_Mawk%
echo   gsub("Mañana","Noche") >>%File_Mawk%
echo   printf("%%s\n",$0)     >>%File_Mawk%
echo }                        >>%File_Mawk%
 
mawk -f %File_Mawk% %File_Orig% >%File_Dest%
 
COPY %File_Orig% %File_Back% >nul
COPY %File_Dest% %File_Orig% >nul
DEL  %File_Dest%
DEL  %File_Mawk%


Como ahora estoy en Internet Explore y no me permite adjuntar archivos en el próximo comentario te envío el MAWK.EXE para Windows 7.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Reemplazar textos de archivo con MS DOS

Publicado por Antoni Masana (811 intervenciones) el 26/06/2014 07:06:11
Con el Google Chrome si puedo enviar ficheros.

Esta utilidad es la misma que la de Unix ( AWK ) es todo lo que le falta al MS-DOS

En esta pagina puedes encontrar manuales

http://www.lawebdelprogramador.com/cursos/AWK/index1.html

Te envío adjunto el que yo utilizo que es bastante bueno y en castellano.

Si busca en GOOGLE hay mas manuales y versiones de este programa para MS-DOS

Saludos nuevamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Reemplazar textos de archivo con MS DOS

Publicado por Sebastian (18 intervenciones) el 26/06/2014 22:30:02
Antoni....

Excelente....

Tuve que hacerle unos cambios ya que me borraba el TMP creado para Mawk sin antes reemplazar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@ECHO OFF
cls
set File_Orig=C:\Cambio\Cambio.txt
set File_Back=C:\Cambio\Cambio.bak
set File_Dest=C:\Cambio\Cambio.tmp
set File_Mawk=C:\Cambio\Cambio_.tmp
 
echo {                         >%File_Mawk%
echo   gsub("Mañana","Noche") >>%File_Mawk%
echo   printf("%%s\n",$0)     >>%File_Mawk%
echo }                        >>%File_Mawk%
 
mawk -f %File_Mawk% %File_Orig% >%File_Dest%
 
COPY %File_Orig% %File_Back% >nul
COPY %File_Dest% %File_Orig% >nul
DEL  %File_Dest%
DEL  %File_Mawk%
DEL  %File_Back%

Gracias.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar