-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdel_sql_files.pl
116 lines (90 loc) · 2.37 KB
/
del_sql_files.pl
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!c:/perl/bin -w
#
# del_files.pl
#
use strict;
use diagnostics;
use warnings;
use File::stat;
use Spreadsheet::WriteExcel;
use Win32::OLE('in');
my ( $infile, $file, @files, @dirs, $dexlog, $stats, $totalsize );
my ( @header, $obook, $outbook, $outsheet, $newrow);
$infile = "C:\\Dexma\\temp\\sql_delete_old_files.txt";
# spreadsheet to write to
$obook = "C:\\Dexma\\temp\\del_sql_files.xls";
if ( -e $obook ) {
unlink $obook;
}
open(DAT, $infile) || die("Could not open $infile for reading!");
@files = <DAT>;
close DAT;
$dexlog = Win32::OLE->new('Dexma.Dexlog') or warn "Cannot create DexLog object $!\n";
$dexlog->SetProperty('ModuleName','del_sql_files');
$outbook = Spreadsheet::WriteExcel->new("$obook");
$outsheet = $outbook->add_worksheet();
my %header_row = (
font => 'Arial',
size => '14',
bg_color => '55',
bold => '1',
align => 'center'
);
# row formats
my $header = $outbook->add_format();
$header->set_properties(%header_row);
# header row
@header = (
[ "File", "Size", "Modified Time", "Access Time" ]
);
# write the header and freeze the worksheet
$outsheet->write_col(0, 0, \@header, $header);
$outsheet->freeze_panes(1, 0);
# increment for header row
$newrow = 1;
@files = sort(@files);
foreach $file ( @files ) {
chomp($file);
unless ( -f $file ) {
#$dexlog->Msg("*** $file - Doesn't appear to exist!: $! ***");
if ( -d $file ) {
push @dirs, $file;
}
next;
}
$stats = stat($file);
my $size = $stats->size;
my $mtime = localtime($stats->mtime);
my $atime = localtime($stats->atime);
my @row = (
[ $file, $size, $mtime, $atime ]
);
$outsheet->write_col($newrow, 0, \@row);
print "File: " . $file . "\n";
# remove file
print "Deleting " . $file . "\n";
unlink $file;
$totalsize = ( $totalsize + $stats->size );
$newrow++;
}
@dirs = sort(@dirs);
foreach my $dir ( @dirs ) {
print "Directory: " . $dir . "\n";
$stats = stat($dir);
my $mtime = localtime($stats->mtime);
my $atime = localtime($stats->atime);
my @row = (
[ $dir, "", $mtime, $atime ]
);
$outsheet->write_col($newrow, 0, \@row);
$newrow++;
# remove directory
system "rmdir /S $dir";
}
#totals
my $mb = ( ( $totalsize/1024 )/1024 );
my $gb = ( $mb/1024 );
my @row = (
[ "TotalSize", $totalsize . " Bytes", $mb . " MB", $gb . " GB" ]
);
$outsheet->write_col($newrow, 0, \@row);