Frage : Durch alle Akten in einem dir in Perl wiederholen und sie anderwohin kopieren müssen

Hallo,

I morgens Messwert durch ein übertreffenblatt, eine Unix-Position heraus vorwählend, dort gehen und dann versuchen, alle .txt-Akten von in einem anderen Niveau up.

I morgens dort zu kopieren des Verzeichnisses eins diese Störung erhalten. Pls help.

-------------------------------------------

Use des uninitialized Wertes in der Hintereinanderschaltung (.) oder Schnur an Copy_Baseline.pl an der Klacksaussage line.
/ms/user/s/sayantag/Baseline/
-------------------------------------------


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
#! /usr/bin/perl5.10 - w


Warnungen verwenden;
Gebrauch Verteilungsbogen:: WriteExcel:: Groß;
Gebrauch Verteilungsbogen:: ParseExcel;
strenges verwenden;
Gebrauch IO:: Skalar;
Gebrauch Daten:: Kipper;

mein CFP = „/ms/user/s/sayantag/“;
mein $new_parser = Verteilungsbogen:: ParseExcel->new ();
mein $new_workbook = $new_parser->parse (CFP. „Source.xls“);
mein $new_worksheet;

mein „wf_OTC_Taxlots_Open“ $curr_etl =;


für $new_worksheet ($new_workbook->worksheets ()) {
zunächst es sei denn $new_worksheet-> {Namens} eq „WF“;
#print „xyb“;
mein ($row_min, $row_max) = $new_worksheet->row_range ();
mein ($col_min, $col_max) = $new_worksheet->col_range ();

 für mein $row ($row_min. $row_max) {##First for##
 für mein $col ($col_min. $col_max) {##Second for##
   mein $cell = $new_worksheet->get_cell ($row, $col);
     wenn ($col==0 && $row! && =0 ($new_worksheet->get_cell ($row, $col) - >value eq „$curr_etl“))  {
       mein $wf_loc = $new_worksheet->get_cell ($row, $col+2) - >value;

       chdir ($wf_loc) oder sterben „$! “;
       Druck „$wf_loc“;

       meine @delta_files = Klacks „$ARGV [0] *.txt“;

       foreach mein $txt_file (@delta_files) {
         `Cp $txt_file ../Delta_ETL/ `;
           }
         }
       }
     }
   }

Antwort : Durch alle Akten in einem dir in Perl wiederholen und sie anderwohin kopieren müssen

Geändert, um Ihre Updates zusammenzubringen bekannt gaben Sie, während ich schrieb den…
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
#! /usr/bin/perl5.10

# - w ist mit Gebrauchwarnungen überflüssig
Warnungen verwenden;
Gebrauch Verteilungsbogen:: WriteExcel:: Groß;
Gebrauch Verteilungsbogen:: ParseExcel;
strenges verwenden;
Gebrauch IO:: Skalar;
Gebrauch Daten:: Kipper;
Gebrauch Akte:: Qw (Cp) kopieren;

mein CFP = „/ms/user/s/sayantag/“;
mein $new_parser   = Verteilungsbogen:: ParseExcel->new ();
mein $new_workbook = $new_parser->parse (CFP. „Source.xls“);

mein „wf_OTC_Taxlots_Open“ $curr_etl =;
mein $wf_name = substr $curr_etl, 3;
„den Arbeitsflußnamen drucken ist $wf_name \ n“;

für  mein $new_worksheet ($new_workbook->worksheets ()) {
    zunächst es sei denn $new_worksheet-> {Namens} eq „WF“;
    #print „xyb“;
    mein ($row_min, $row_max) = $new_worksheet->row_range ();
    mein ($col_min, $col_max) = $new_worksheet->col_range ();

    für mein $row ($row_min. $row_max) {##First for##
        mein $cell = $new_worksheet->get_cell ($row, 0);
        wenn (definiertes $cell und $cell->value eq $curr_etl)  {
            mein $wf_loc = $new_worksheet->get_cell ($row, 2) - >value;

            Druck „$wf_loc“;

            opendir DIR, $wf_loc
                oder sterben „könnte $wf_loc nicht öffnen: $! “;
            meine @delta_files = Grep m {^delta_$ {wf_name} _Baseline \ .txt$}, readdir DIR;
            closedir DIR;

            foreach mein $txt_file (@delta_files) {
                Cp „$wf_loc/$txt_file“ „$wf_loc/. /Delta_ETL/$txt_file“
                    oder sterben „könnte nicht Cp $wf_loc/$txt_file: $! “;
            }
        }
    }
}
Weitere Lösungen  
 
programming4us programming4us