in reply to Script to delete only those files on a path whose accessed date is more than 7 days
Hello abhi_perl, and welcome to the Monastery!
Your script is OK (apart from the absence of use strict, of course!). The problem seems to be a — well, shall we say, an eccentricity — of Windows: a file access does not (by default) change the “date accessed” attribute of the file.
A Google search on “ Windows "date accessed" ” brought up this link: http://www.vistaheads.com/forums/microsoft-public-windows-vista-file-management/176698-date-accessed-attribute-not-updating.html. Following the advice there — i.e., changing one registry setting and rebooting — fixed the problem on my system. With this change, your script should work as expected.
A tip: in situations like this, put in print statements to find out what Perl is actually seeing. I used:
foreach my $file (@files) { printf "-A %s = %d\n", $file, -A "$userpath/$file"; printf "-M %s = %d\n", $file, -M "$userpath/$file"; }
from which it was obvious that the “access date” attribute was mostly the same as the “modified date” attribute. This was easily confirmed via Windows Explorer.
HTH,
Athanasius <°(((>< contra mundum
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Script to delete only those files on a path whose accessed date is more than 7 days
by abhi_perl (Initiate) on Aug 13, 2012 at 13:49 UTC |