in reply to Deleting files based on date

There is no option in DOS to delete by date.

It's possible to do this in DOS (or at the Windows command prompt, which I suspect is what you really mean) by combining some things, but it's actually easier to do it in pure Perl.

for (<C:\\newfiles\\*.htm>) { unlink if (-M > $somenumberofdays); }

This doesn't recursively traverse the directory structure, but you can do that also using readdir and/or the -d and/or -f file test operators. With readdir, it's even possible to do this in a cross-platform way without worrying about what character is the directory separator on your platform (backslash on DOS and Windows, slash on POSIX systems, colon I think on older MacOSes, and then there's VMS...) Also, I think $somenumberofdays doesn't have to be an integer, so you could delete files more than (say) twelve hours old by setting it to 0.5, unless I am mistaken. If you need to traverse the directory tree and need more help with it, post a reply here saying so.

Like I said, it's possible to use backticks to shell out to COMMAND.COM and get this done with standard MS command-line tools, but it's the more difficult way to go. Since you already have Perl on the system, use it.


$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}} split//,".rekcah lreP rehtona tsuJ";$\=$ ;->();print$/