|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Speicherplaz
|
Seitenanfang |
Hallo, ich möchte wissen wie viel speicherplaz auf C: zum beispiel noch frei ist. wie könnte ich dass bitte auslesen.ich habe das durch das dir Befehl und in einem Filehandel alles gelöscht bis Dir(s) dann satand da: ......Dir(s) 106.754.236.416 bytes free es hat schon gut funktioniert auf viele PCs aber nicht auf einem Deutschen PC. wie könnte ich das dann anders lösen?? Danke euch.
Datum: 10.08.2007-15:23

|
re: Speicherplaz
|
Seitenanfang |
Hmmm, screenscraping ist eben sprachabhängig... Bei einem deutschen Rechner heisst die Zeile dann " 10 Verzeichnis(se), 5.977.751.552 Bytes frei". Wenn Du es im Englischen geschafft hast, solltest Du nur die Regex anpassen müssen.Ich würde aber lieber http://search.cpan.org/~mblaz/Win32-DriveInfo-0.06/DriveInfo.pm versuchen. Gruss, svenxy
Datum: 13.08.2007-16:23

|
re: Speicherplaz
|
Seitenanfang |
so würde es auch gehen: use strict;open(DIR, 'dir|') or die "Konnte nicht aus Befehl dir lesen: $!"; my @lines = <DIR>; close DIR; my @space = split(/\s+/, $lines[-1]); print $space[3], "\n";
aber wie gesagt, screenscraper sind immer mit Vorsicht zu geniessen...
Datum: 13.08.2007-16:55

|
re: Speicherplaz
|
Seitenanfang |
so habe ich es auch gelöst aber habe angst dass irgendwann die Zeile anders aussieht. [code] #anfang_sub my(@arr) = @_; # Input my ($line, $limit, $cont); # Local my($label, $yes, $no, @table); system('DIR C: > C:\InstallerDIR.txt'); # check free space (Comandwindow) # > InstallerDIR.txt (Write). # > InstallerDIR.txt (Write). open(FH, "< C:\\InstallerDIR.txt") or die "can't open inputfile: $!\n"; # just read or "can't open inputfile" @table = <FH>; # reads DATEI an writes it in @table $line = $table[-1]; $line =~ s/^.*\)(.*)byte.*$/$1/; $line =~ s/^[\s\t]+//; close FH; system("del C:\\InstallerDIR.txt"); # delete InstallerDIR.txt $line =~ y/0-9//cd; # delete Complement of Numbers $limit=100; # Minimum 100 MB $line /= (10**6); # from bytes to MB $line = sprintf "%2.3f", $line; # round on 3 spaces after comma print "\n\n\nOnly $line MB available!!!\n\n\n"; ........ .... #endsub
Datum: 14.08.2007-11:09

|
re: Speicherplaz
|
Seitenanfang |
es hat funktioniert danke euch. die beiden Lösungen sind gut.
Datum: 15.08.2007-09:21

|
|

|

|

|
 |

|

|
|