I'm having trouble with a little backup job I wrote.  I'm using Win 2000 and
Perl 5.6.1.  This backup job gathers a few files into one location, then
zips them up, then deletes the original files.  I use the system command for
the zipping, because I use an external application (pkzip) for that.  The
problem is that it zips up files from the wrong folder, specifically, the
folder where the perl job is running from (c:\perl).  But when I take out
the zip part of the code and run it alone, it zips from the correct
directory.  I tried to put a chdir right before the zip (in the 1st
program), but I must have done it wrong, because it had no impact.  Can
someone tell me why the zipping is happening in a different directory than I
specified?

Here is the code from the 2 different programs:

<START of 1st program>

use warnings;
use strict;
use File::Copy;

###get the date
my ( $day, $month, $year ) = (localtime)[3..5];
$year  += 1900;
$month = sprintf("%02d", $month+1);
$day   = sprintf("%02d", $day);


###populate @mths array
my @mths = qw(00NUL 01Jan 02Feb 03Mar 04Apr 05May 06Jun 07Jul 08Aug 09Sep
10oct 11Nov 12Dec);

###copy PSR file to production
if (-e
"e:\\reports\\acs\\REJECTSacs_rejected_mail-$month$day$year.psr") {
    copy ("e:\\reports\\acs\\REJECTSacs_rejected_mail-$month$day$year.psr", 
      "c:\\prod\\acs\\output\\REJECTSacs_rejected_mail-$year$month$day.psr")
          or die "can't copy/rename PSR file: $!";
}    

###copy emailrej file to production
if (-e       "c:\\prod\\acs\\input\\emailrej.txt") {
    copy ("c:\\prod\\acs\\input\\emailrej.txt", 
             "c:\\prod\\acs\\output\\emailrej_$year$month$day.txt")
          or die "can't copy emailrej file: $!";
}    

###rename email.dat file
rename("c:\\prod\\acs\\output\\email.dat",
"c:\\prod\\acs\\output\\email_$year$month$day.dat")
or die "can't rename email.dat file: $!";

###create zip file
system("pkzipc -add e:\\tepcbkup\\acsage\\acsage_$year$month$day.zip 
                               c:\\prod\\acs\\output\\*.*");

###move zip file to month folder
if (!-e
"e:\\tepcbkup\\acsage\\$mths[$month]\\acsage_$year$month$day.zip") {
    move ("e:\\tepcbkup\\acsage\\acsage_$year$month$day.zip", 
 
"e:\\tepcbkup\\acsage\\$mths[$month]\\acsage_$year$month$day.zip")
          or die "can't move zip file to month folder: $!";
}

###delete files from production
unlink "c:\\prod\\acs\\output\\emailrej_$year$month$day.txt" or warn "can't
delete emailrej file: $!";
unlink "c:\\prod\\acs\\output\\REJECTSacs_rejected_mail-$year$month$day.psr"
or warn "can't delete PSR file: $!";
unlink "c:\\prod\\acs\\output\\email_$year$month$day.dat" or warn "can't
delete email.dat file: $!";


<END of 1st program>


<START of 2nd program, which works>

use warnings;
use strict;
#use File::Copy;

###get the date
my ( $day, $month, $year ) = (localtime)[3..5];
$year  += 1900;
$month = sprintf("%02d", $month+1);
$day   = sprintf("%02d", $day);

###create zip file
system("pkzipc -add e:\\tepcbkup\\acsage\\acsage_$year$month$day.zip 
                               c:\\prod\\acs\\output\\*.*");


<END of 2nd program>

So to restate, or elaborate, the 1st program works fine except the
system(pkzipc) zips up files from the wrong directory.  I don't get any
errors on the screen.  In the 2nd program, the system(pkzipc) zips up the
right files.  Thanks for any help.

Rebecca


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to