Thread Win32::File Erweiterte Dateieigenschaft Inhalt komprimieren setzen
(11 answers)
Opened by bianca at 2022-01-18 10:01
Wer Lust hat ein bisschen zu spielen.
Code (perl): (dl
)
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 #!/usr/bin/perl use strict; use warnings; use 5.010; system 'cls'; require Win32::OLE; my $ordner = 'D:/Arbeit/Unterverz'; # Quelle: https://docs.microsoft.com/de-de/windows/win32/cimwin32prov/compress-method-in-class-cim-directory my %fehlernr = ( 2 => 'Der Zugriff wurde verweigert', 8 => 'Nicht angegebener Fehler', 9 => 'Ungültiges Objekt', 10 => 'Das Objekt ist bereits vorhanden', 11 => 'Dateisystem, nicht NTFS', 12 => 'Plattform nicht Windows', 13 => 'Laufwerk nicht identisch', 14 => 'Verzeichnis ist nicht leer', 15 => 'Freigabeverletzung', 16 => 'Ungültige Startdatei', 17 => 'Die Berechtigung wurde nicht gehalten', 21 => 'Ungültiger Parameter', ); if (my $obj_wmi = Win32::OLE->GetObject('winmgmts:\\\\.\\root\\cimv2')) { # Quelle: https://www.stephenjc.com/2009/12/09/windows-log-file-compression-in-perl if (my $obj_dir = $obj_wmi->Get("Cim_Directory='$ordner'")) { if ($obj_dir->Compressed != 1) { say "vorher : NICHT komprimiert"; my $int_rc = $obj_dir->Compress; # dieses Kommando liefert kein true oder false if ($int_rc != 0) { say "Fehler: '$int_rc / " .(defined $fehlernr{$int_rc} ? $fehlernr{$int_rc} : 'Unbekannte Ursache') ."'"; } else { if (my $obj_dir_after = $obj_wmi->Get("Cim_Directory='$ordner'")) { if ($obj_dir_after->Compressed == 1) { say "Ordner ist jetzt komprimiert"; } else { say "Ordner komprimieren hat nicht funktioniert"; } } else { say "Shit in ".__LINE__; } } } else { say "Ordner ist bereits komprimiert"; } } else { say "Shit in ".__LINE__; } } else { say "Shit in ".__LINE__; } Danke GwenDragon und alle Leser! 10 print "Hallo"
20 goto 10 |