Ms-Dos - Programa bat para buscar y añadir cadenas

 
Vista:

Programa bat para buscar y añadir cadenas

Publicado por Gonzalo (1 intervención) el 12/09/2008 14:06:57
Hola

Me podríais decir como hacer un programa msdos(.bat) que busque la cadena "is_loaded TRUE " en todos los ficheros .cat dentro de la carpeta y subcarpetas ModeloRational y a partir de esa cadena añada el siguiente parrafo:

attributes (list Attribute_Set
(object Attribute
tool "sc"
name "SourceControlProject"
value "SIMA_050-DISEÑO_MODELO_RR2002")
(object Attribute
tool "sc"
name "SourceControlAuxProjPath"
value "")



Gracias
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

RE:Programa bat para buscar y añadir cadenas

Publicado por Armando Nava (194 intervenciones) el 05/10/2008 19:51:53
Tendrias que usar PERL por ejemplo

Creas un listado de archivos y luego mediante in for los abres apara buscar y reemplazar la cadena.

Todavía no entiendo las expresiones regulares, es cosa de que veas algo de este tutorial, o en otros.

http://www.ulpgc.es/otros/tutoriales/perl/indice.htm
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

RE:Programa bat para buscar y añadir cadenas

Publicado por Armando Nava (194 intervenciones) el 05/10/2008 21:43:58
Baja perl e instalalo, es rápido, convive con instrucciones de MS-DOS, le puedes pasar parametros desde MS-DOS, etc

Ya arme algo para un solo archivo, solo hay que hacer un for para darle la ruta de cada archivo. Es este caso te sustituye toda la linea, es decir que si tienes algo depues del is_loaded TRUE (en la misma linea), se pierde.

open(IN, "muestra.txt");
open(OUT, ">out.txt");
while($linea = <IN>) {

$msg = <<SALUDO;
is_loaded TRUE,
attributes (list Attribute_Set,
(object Attribute,
tool "sc",
name "SourceControlProject",
value "SIMA_050-DISEÑO_MODELO_RR2002"),
(object Attribute,
tool "sc",
name "SourceControlAuxProjPath",
value ""),
SALUDO

$compara = "is_loaded TRUE";

if ($linea =~ /$compara/) {
$linea = $msg;
}
# escritura del resultado
print OUT $linea;

}

close(IN);
close(OUT);

system (pause)
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