Aktionen

JPUser.dat Dateigroessen ermitteln aus Benutzerverzeichnissen

Aus znilwiki

Ich wollte gerade mal wissen wie Groß die Profile der Benutzer sind - die größten und dicksten schaue ich mir dann an :-)

Um das als Liste schön untereinander zu haben, habe ich mir eine Batch geschrieben die folgende Ausgabe macht:

JPUserDatCheck-001.png


Die Ausgabe könnt Ihr natürlich auch in eine Textdatei umleiten

JPUserDatCheck.cmd > Liste.txt

Im Quellcode müsst Ihr den Pfad setzen unter

set PROFILPFAD=D:\Profiles

muss euer Pfad rein.

Warning.png
Warnung: ACHTUNG: Je nach Betriebssystem müsst Ihr die Byte-Ermittlung an die Sprache anpassen, das Beispiel hier ist für englische Systeme, die Zeile für deutsche ist drin, müsst ihr nur umkommentieren (englisch REM davor und bei Deutsch entfernen). Gibt es eine Fehlermeldung wie ""set" kann syntaktisch an dieser Stelle nicht verarbeitet werden." müsst Ihr die Sprache umschalten!



Hier der Quelltext:

@echo off
REM ##################################################################################################
REM Einfache Batchdatei die eine Ordnerstruktur abarbeitet.
REM In diesem Fall wollen wir einer Liste der größe aller JPUser.dat Dateien der Benutzer
REM 2014 Bernhard Linz
REM Bernhard@znil.net
REM Bernhard.Linz@datagroup.de
REM veröffentlicht auf znilwiki: http://znil.net
REM

REM Setup

set PROFILPFAD=D:\Profiles

REM ****************************************************************
set SUMME=0


REM Wir lassen uns alle Ordner im Verzeichnis auflisten und nehmen diese als Arbeitsgrundlage.
dir /b %PROFILPFAD% > "%TEMP%\benutzerliste.txt"
for /F "eol=# tokens=1-4 delims=\" %%i in (%TEMP%\benutzerliste.txt) do call :SCHLEIFE %%i %%j
 
goto ENDE


REM SCHLEIFE ######################################################################################### 
:SCHLEIFE
	REM Ordnernamen ermitteln!
	set ORDNERNAME=%1
	set ORDNERNAME2=%1 %2
	
	REM prüfen ob wir einen Wert haben, sonst beenden
	if /I "%ORDNERNAME%"=="" goto :EOF
	
	REM in den nächsten Zeilen würden wir uns nur den Benutzrnamen abschneiden. Auskommentiert da ich es nicht verwende
	REM for /f "tokens=1,2,3 delims=." %%a in ("%ORDNERNAME%") do set ORDNERNAME1=%%a
	REM echo %DATE%/%TIME% - Verarbeitetes Profil %ORDNERNAME% / %ORDNERNAME1%
	
	REM prüfen ob es die Datei überhaupt gibt um Fehlermeldungen zu unterdrücken in der Liste (Datei nicht gefunden kommt sonst ggf.)
	if NOT exist "%PROFILPFAD%\%ORDNERNAME%\JumpingProfile\JPUser.dat" goto :EOF
	
	REM Größe abfragen!
	REM Deutsche Spracheinstellungen / Ausgabe von DIR ist auf Deutsch
	REM for /f "tokens=1-3" %%i in ('dir "%PROFILPFAD%\%ORDNERNAME%\JumpingProfile\JPUser.dat" /-C /S ^|find "Datei(en)" ^|find "Bytes"') do set DATEIGROESSE=%%k
	REM oder Englisches System / Ausgabe von DIT ist in Englisch
	for /f "tokens=1-3" %%i in ('dir "%PROFILPFAD%\%ORDNERNAME%\JumpingProfile\JPUser.dat" /-C /S ^|find "File(s)" ^|find "bytes"') do set DATEIGROESSE=%%k
	
	REM Umrechnen von Bytes in Megabytes
	set /A DATEIGROESSE=(%DATEIGROESSE% / 1048576)
	
	REM Führende Leerzeichen damit alles schön untereinander steht
	if %DATEIGROESSE%==0 set DATEIGROESSE=1
	if %DATEIGROESSE% LEQ 9 set DATEIGROESSE= %DATEIGROESSE%
	if %DATEIGROESSE% LEQ 99 set DATEIGROESSE= %DATEIGROESSE%
	
	REM Kunstgriff um die MByte Werte untereinander zu haben
	set GANZERPFAD=%PROFILPFAD%\%ORDNERNAME%\JumpingProfile\JPUser.dat                                                                               .
	
	REM und die eigentliche Ausgabe. Der zuvor gebaute Wert wird nach 80 Zeichen abgeschnitten
	echo %GANZERPFAD:~ 0, 80%         %DATEIGROESSE% MBytes
	
	REM das war schon alles
	goto :EOF

 
REM Schluss ist ######################################################################################
:ENDE	

REM Aufräumen
del "%TEMP%\benutzerliste.txt"
pause




--Bernhard Linz 12:24, 8. Okt. 2014 (CEST)


Loading comments...