Tengo un pequeño problemón con un script que no me queda. Lo que deseo hacer es copiar todos los archivos XML, los cuales los tengo divididos en diferentes carpetas por fecha. Quiero hacer un acumulativo. Ejemplo:
C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPCH\BACKUP\XML\arc
Esta contiene carpetas año y mes. Ejemplo:
C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPCH\BACKUP\XML\arc\201101
C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPCH\BACKUP\XML\arc\201106
Dentro de estas carpetas están los archivos XML.
¿Cómo puedo hacer para que los archivos se copien en C:\XML?
Mi ejemplo:
Using perl Syntax Highlighting
- #!/usr/bin/perl -w
- use strict;
- use File::Copy;
- use XML::Simple;
- my @dir = qw{
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPCH\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPCOMERMEX\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPCOR\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPGENERICO\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPIMS\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPSOR\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPWA\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPDICONSA\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPAEROVIAS\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPABARROTESRIV\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPCHEFMART\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPCOSTENA\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPESQUIVAR\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPGARCES\BACKUP\XML
- C:\EDIWIN\DOMINIOS\EDI\SALIDA\TEMPSUPERNETO\BACKUP\XML
- };
- # my @recentCFD = "";
- my $backup_dir = "./arc/";
- my ($sec,$min,$hour,$day,$month,$yr19,@rest) = localtime(time);####### Obtiene la hora del sistema
- my $destdir="/cfd/569/".($yr19+1900);####### asigna directorio seguún el año en que se ejecute
- my @ERRORS="";
- my $newerr=0;
- foreach my $dir (@dir){
- chdir $dir ;
- print "Cambiando de directorio a " . $dir . "\n";
- my @files = <*.xml>;
- foreach my $archivo (@files){
- print $archivo, "\n";
- #move ($archivo,"./arc/");
- my $ref = eval {XMLin($archivo)};
- if (!$@){
- my $fech = $ref->{fecha};
- my $anio = substr($fech,0,4);
- my $mes = substr($fech,5,2);
- if (! -d $backup_dir.$anio.$mes) {
- # print "Directory: No.\n";
- print "Creando directorio: $anio$mes:\n";
- mkdir $backup_dir.$anio;
- }
- # print $archivo," --> " ,$anio, $mes,"\n";
- copy($archivo,$backup_dir . $anio . "/");
- }
- else
- {
- print "Error procesando archivo: ",$archivo," \n";
- rename $archivo,$archivo.".err";
- }
- }
- }
- sub myerr {
- print "Error: \n";
- print @ERRORS;
- exit 0;
- }
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
Si alguien me pudiera ayudar de favor.
¡Muchas gracias!