Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ordnergröße protokollieren ?

Frage Microsoft Windows Tools

Mitglied: schregi82

schregi82 (Level 2) - Jetzt verbinden

25.09.2007, aktualisiert 26.09.2007, 5322 Aufrufe, 7 Kommentare

hallo zusammen,
ich suche nach einem tool, batch od. ähnlichem um die größe eines ordners zu protokollieren.

Zum Beispiel:
\\ordner1\uordner1

die größe von uordner1 soll täglich um xx:xx Uhr protokolliert werden

ob das jetzt in einem txt od. sonstigem format passiert ist egal.
Mitglied: TuXHunt3R
25.09.2007 um 15:22 Uhr
Für ganze Laufwerke könnte das ganze in Batchform so aussehen:

01.
echo <Laufwerk> >> c:\logfile_ordnergroesse.txt 
02.
echo %date%,%time% >> c:\logfile_ordnergroesse.txt 
03.
dir <Laufwerk> | find /i "Bytes " >> c:\logfile_ordnergroesse.txt 
04.
echo. >> c:\logfile_ordnergroesse

Somit gibts ein schönes Logfile. "<Laufwerk>" musst du natürlich durch den Laufwerksbuchstaben ersetzen.
Bitte warten ..
Mitglied: schregi82
25.09.2007 um 18:36 Uhr
hallo tuxhunt3r,

danke schon mal für deine antwort. ich hab nur noch ein problem damit, und zwar das nur der freie Speicherplatz protokolliert wird, ich möchte ja den Platz den der Ordner im Beispiel unten (d:\downloads\) belegt.


01.
 
02.
d:\  
03.
25.09.2007,18:29:09,15  
04.
              12 Verzeichnis(se), 15.620.931.584 Bytes frei  
05.
  
06.
d:\downloads\  
07.
25.09.2007,18:30:31,43  
08.
               4 Verzeichnis(se), 15.620.931.584 Bytes frei 
09.
 


hintergrund der geschichte: ich möchte einen ordner in dem das backend zu einem auf access !! basierenden warenwirtschaftssystem liegt, etwas im auge behalten.
Bitte warten ..
Mitglied: TuXHunt3R
25.09.2007 um 21:42 Uhr
Hat dieser Ordner noch weitere Unterordner oder werden darin einfach nur Dateien abgelegt? Evt. könnte ich dir in der Powershell was basteln, wenn du mir etwas Zeit gibst....
Bitte warten ..
Mitglied: schregi82
25.09.2007 um 22:42 Uhr
es sind im grossen und ganzen nur *.mdb-Dateien (ca. 15), es existieren schon auch andere ordner (z.b. backup, bilder, etc..) auf selber ebene, aber die sollten nach möglichkeit auch gar nicht erfasst werden.

\\ordner1\uordner1\beispiel.mbd
\\ordner1\uordner1\backup\ ..
\\ordner1\uordner1\images\ ..

etc ..

andernfalls hätte ich die genannten ordner in der hierarchie nach oben gesetzt.
(was momentan noch kein problem ist, weil das ganze erst am anfang steht)

mir geht es eigentlich nur um die grösse der *.mdb-files.
die sollte dann täglich in einem *.txt protokolliert werden bzw. besser um den jeweilgen Tageseintrag erweitert werden.

thx a lot
Bitte warten ..
Mitglied: TuXHunt3R
25.09.2007 um 23:09 Uhr
OK, bin dran.

Noch ein bisschen Geduld.......
Bitte warten ..
Mitglied: Biber
25.09.2007 um 23:42 Uhr
Moin schregi82,

der Effekt, den Du beschreibst, kommt durch einen unabsichtlichen Flüchtigkeitsfehler TuXHunt3Rs.

Der "deutsche" DIR-Befehl bringt in der Anzeige als letztes zwei Zeilen mit dem Wort "Bytes".
Und der "Find"-Befehl mit dem versehentlichen Leerzeichen nach dem Wort "Bytes " liefert die falsche Zeile.

Demo am CMD-Prompt:
01.
(=23:36:57  D:\temp=) 
02.
>dir test|find "Bytes" 
03.
               9 Datei(en)      6.691.869 Bytes 
04.
              15 Verzeichnis(se), 53.704.204.288 Bytes frei 
05.
 
06.
(=23:37:14  D:\temp=) 
07.
>dir test|find "Bytes " 
08.
              15 Verzeichnis(se), 53.704.204.288 Bytes frei 
09.
 
10.
(=23:37:19  D:\temp=) 
11.
>dir test|findstr "Bytes$" 
12.
               9 Datei(en)      6.691.869 Bytes
Wie Du siehst, liefert Variante 2 (mit find "Bytes ") genau die für Dich uninteressante Zeile.
Variante 3 mit dem etwas pfiffigeren FindStr-Utility mit "Bytes$" [=dem Wort "Bytes" am Zeilenende] wäre für Deinen Zweck besser.

Ansonsten passt TuX'ens Strategie schon.

Grüße
Biber

P.S. Für eine programmtechnische Weiterverarbeitung wäre u.U. der DIR-Parameter "-C" nützlich.
Der lässt die Tausender-Trennpunkte weg.
01.
>dir /-c test|findstr "Bytes$" 
02.
               9 Datei(en)        6691869 Bytes
P.P.S. Wenn Du hier im Forum nach "DirSize" suchst, findest Du ein paar ähnliche Skriptchen und auch Verweise auf Utilities wie du.exe (DiskUsage), die etwas flinker sind.
Bitte warten ..
Mitglied: TuXHunt3R
26.09.2007 um 00:29 Uhr
Hallo schregi82

Hier der Code des Powershell-Scripts:

01.
# *********************************** 
02.
# LogMDBSize.ps1 
03.
# ----------------- 
04.
# Counts the sizes of all MDB-Files in the specified folder 
05.
# and write it into a specified logfile 
06.
07.
# Language: PowerShell v1.0 
08.
# History: 
09.
# | TuXHunT3R - 25.09.2007 - New Script 
10.
#  
11.
# *********************************** 
12.
 
13.
# Konsole leeren 
14.
clear-host 
15.
 
16.
# Variablen setzen (GroesseAllerDateien als Integer, da mit der Zahl gerechnet werden muss) 
17.
$ordner = "<Hier den entsprechenden Ordner eingeben>" 
18.
$Logfile = "<Hier den Pfad zum Logfile einsetzen>" 
19.
[System.Int32]$GroesseAllerMDBs = 0 
20.
[System.Int32]$GroesseAllerMDBsKB = 0 
21.
[System.Int32]$GroesseAllerMDBsMB = 0 
22.
$DatumUndZeit = get-date -format g 
23.
 
24.
 
25.
# Alle Dateigrössen ausgeben, rsp. in Textfile abfüllen 
26.
get-childitem $Ordner\*.mdb | foreach-object -process { $_.length } | out-file C:\windows\temp\dateigroessen.txt 
27.
 
28.
# Alle Grössen zusammenzählen 
29.
get-content C:\windows\temp\dateigroessen.txt | foreach-object -process { $GroesseAllerMDBs = $GroesseAllerMDBs + $_ } 
30.
 
31.
#Umrechnen 
32.
$GroesseAllerMDBsKB = $GroesseAllerMDBs / 1024 
33.
$GroesseAllerMDBsMB = $GroesseAllerMDBsKB / 1024 
34.
 
35.
 
36.
# Ins Logfile schreiben 
37.
$DatumUndZeit | out-file $Logfile -append 
38.
$Ordner | out-file $Logfile -append 
39.
$GroesseAllerMDBsMB | out-file $Logfile -append 
40.
"Groesse aller MDB-Files in diesem Ordner in Megabytes (gerundet)" | out-file $Logfile -append 
41.
"----------------------------------------------------------------" | out-file $Logfile -append 
42.
 
43.
# Ausgabe 
44.
write-host "LogMDBSize.ps1" 
45.
write-host "==============" 
46.
write-host " " 
47.
$Ordner 
48.
write-host "--------------" 
49.
write-host "Die Groesse aller MDBs in diesem Ordner wurde geloggt! Logfile:" 
50.
$Logfile 
51.
write-host " " 
52.
write-host "Schoenen Tag noch!" 
53.
write-host "Coded by TuXHunT3R" 
54.
write-host " " 
55.
 
56.
 
57.
# temporäres Logfile schrotten 
58.
get-childitem C:\windows\temp\*dateigroessen*.txt -recurse | remove-item
Die folgenden Zeilen musst du noch anpassen (die Hochkommas " stehen lassen!):

01.
$ordner = "<Hier den entsprechenden Ordner eingeben>" 
02.
$Logfile = "<Hier den Pfad zum Logfile einsetzen>"
Die PowerShell gibts gratis bei Microsoft zum Download, bitte auf die richtige Sprachversion und auf das Betriebssystem achten! PowerShell-Scripts haben die Dateiendung *.ps1

Vor dem Ausführen des Scripts musst du folgende Zeile in der PowerShell eingeben, um Scripts zu erlauben:

01.
set-executionpolicy unrestricted
PowerShell-Scripts können nicht durch Doppelklick ausgeführt werden. Du musst in der Konsole in den entsprechenden Ordner wechseln (mit "cd") und dort das Script folgendermassen starten:

01.
.\scriptname
D.h. du musst einfach ein ".\" vornedran machen.


Beschäftige dich doch bei dieser Gelegenheit gleich ein wenig mit der PowerShell, das Teil rockt!


EDIT:
ACHTUNG!!!!
Das Script zählt nur die Grössen aller MDB-Files zusammen, die in dem angegebenen Ordner liegen! MDBs in weiteren Unterordnern werden nicht berücksichtigt!
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Ordnergröße Skript ignoriert versteckte Dateien (3)

Frage von Giffas zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...