I have a couple of scripts which for the most part work but I need to change it up a bit based on new requirments. Here is what is currently happening.
Get 80 zip files in named yyyymmdd-(location).zip
Unzip each zip to a folder based on location code in zip name.
Rename the files to include yesterdays date.
Zip up files and move to anyother directory based on location code.
All the above works fine if I only get one zip file per location per day. This is an issue when I get more than one zip file per location. So if I get 20080323-1.zip and 20080324-1.zip because the code I am using will just unzip the first one then unzip the second to the same folder which will over write the first ones before I am able to rename them.
What I need to do is unzip and rename the files based on the date of the zip file then zip all of the files into one zip based on yyyymmdd.zip.
Here is my current code (which came with a lot of help from this forum )
The above calls the awk code below
Then I run the following to rename the files based on the date, zip and move to the correct directory.
Any ideas?
Get 80 zip files in named yyyymmdd-(location).zip
Unzip each zip to a folder based on location code in zip name.
Rename the files to include yesterdays date.
Zip up files and move to anyother directory based on location code.
All the above works fine if I only get one zip file per location per day. This is an issue when I get more than one zip file per location. So if I get 20080323-1.zip and 20080324-1.zip because the code I am using will just unzip the first one then unzip the second to the same folder which will over write the first ones before I am able to rename them.
What I need to do is unzip and rename the files based on the date of the zip file then zip all of the files into one zip based on yyyymmdd.zip.
Here is my current code (which came with a lot of help from this forum )
Code:
@echo off
cd\
cd po\test\users\test
dir /b *.zip | awk -f C:\test\unzip.awk C:\stores.txt - > C:\unzip.cmd
Code:
BEGIN{
UnZipCommand1 = "c:\\progra~1\\winzip\\wzunzip.exe -e -s C:\\po\\test\\users\\test\\"
UnZipCommand2 = " @list.txt C:\\po\\test\\users\\test\\"
# Making the field separator -, ., or TAB makes it work for both
# the file name and the tab delimited map file.
FS = "[-.\t]"
print "@echo off"
}
{
if( NR == FNR ) {
# The file containing the location map.
Table[ $1 ] = $2
}
else {
# The directory listing on STDIN
# The source is the filename in the DIR listing.
Fname = $0
# The target is the given parent directory followed by the location
# from the map file corresponding to the location number in the
# file name (the second field).
Target = Table[ $2 ]
# It may be desirable to ad a trailing "\\" to the command.
Command = UnZipCommand1 Fname UnZipCommand2 Target
print Command
}
}
Then I run the following to rename the files based on the date, zip and move to the correct directory.
Code:
BEGIN{
i=0
timetab(z,time() - 86400)
while (i < 2){
yesterday = time()-(i*86400)
timetab(y,yesterday)
{
while ( (getline < "Stores.txt") > 0)
{
printf("REN c:\\po\test\users\test\\%s\\emp.dbf em%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\gndtndr.dbf td%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\gndline.dbf ln%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\gnditem.dbf it%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\itm.dbf i%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\trans.log t%s%02s%02s.log\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\cit.dbf ci%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\cat.dbf ca%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\gndrevn.dbf gr%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\rev.dbf rv%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\gndturn.dbf gt%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\tdr.dbf t%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\pro.dbf p%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
printf("REN c:\\po\test\users\test\\%s\\cmp.dbf c%s%02s%02s.dbf\n",$2,substr(y["YEAR"],3,2),y["MONTH"],y["DAY"]) > "C:\\test\\doit.bat"
i++
}
while ( (getline < "Store.txt") > 0)
printf("c:\\progra~1\\winzip\\wzzip.exe -m -s C:\\po\test\users\test\\%s\\%s%02s%02s.zip C:\\po\test\users\test\\%s\\*.*\n",$1 ,z["YEAR"],z["MONTH"],z["DAY"], $1) > "C:\\test\\doit.bat"
}
while ((getline <"Store1.txt") > 0)
printf("XCOPY /s C:\\po\test\users\test\\%s\\*.zip C:\\iFtpSvc\\info\\users\\download\\test\\%s\\\n",$1,$1) > "C:\\test\\doit.bat"
}
while ((getline <"Store2.txt") > 0)
printf("del C:\\po\test\users\test\\%s\\*.zip\n",$1) > "C:\\test\\doit.bat"
printf("del C:\\po\test\users\test\\*.zip -w 10\n") > "C:\\test\\doit.bat"
}
Any ideas?