msensay has asked for the wisdom of the Perl Monks concerning the following question:
hello Monks. I'm looking to write a PERL script that mimics what SC-DiskInfo does. The reason I want to do this is because SC-DiskInfo utility only comes in a UI flavor without a command line interface
One of the peices of code from this post comes very close to what I want to do:
http://perlmonks.com/?node_id=421553
here is the code snippet I'm talking about:
#!/usr/bin/perl -l use strict; use warnings; use File::Find; @ARGV=grep {-d or !warn "`$_': not a directory!\n"} @ARGV; die "Usage: $0 <dir> [<dirs>]\n" unless @ARGV; my ($tot,$maxsz,$max,$n)=(0,0); find { no_chdir => 1, wanted => sub { return unless -f; $n++; $tot += my $sz=-s; ($max,$maxsz)=($_,$sz) if $sz >= $maxsz; } }, @ARGV; die "Found 0 files\n" unless $n; print <<"EOF"; Total files found: $n Total size: $tot Largest file: `$max' (size: $maxsz bytes) EOF __END__
However, it falls a little bit short of what I need. I think it probably only needs a few changes to get there. Basically, in addition to the totals already provided, I would like it to provide rollups for one level deep. Here is a simplified example. Take this structure:
c:\temp\folder_1\file1.txt 5KB
c:\temp\folder_1\folder_1a\file1a.txt 5KB
c:\temp\folder_1\folder_1b\file1b.txt 5KB
c:\temp\folder_2\file2.txt 5KB
c:\temp\folder_3
when calling the perl script on c:\temp the results should look something like this:
| Directory ----------- |
#ofSubDirs ------------- |
#ofFiles --------- |
size ---- |
| folder_1 | 2 | 3 | 15KB |
| folder_2 | 0 | 1 | 5KB |
| folder_3 | 0 | 0 | 0KB |
This is basically what SC-DiskInfo provides in a UI when scanning a directory. Any takers? Thanks in advance for any wisdom.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Mimic SC-DiskInfo with PERL
by Khen1950fx (Canon) on Dec 03, 2011 at 02:25 UTC | |
|
Re: Mimic SC-DiskInfo with PERL
by msensay (Novice) on Dec 03, 2011 at 04:29 UTC | |
|
Re: Mimic SC-DiskInfo with PERL
by Anonymous Monk on Dec 02, 2011 at 22:55 UTC | |
by Anonymous Monk on Dec 03, 2011 at 00:04 UTC |