Dateiinformationen per Batch auslesen.
Hallo,
ich möchte gerne verschiedene Informationen von verschiedenen Daten/-Typen auslesen.
Wer hat die datei erstellt, wer ist besitzer, wer hat welche rechte. Naja das mit der größe und so ist ja recht leicht.
Leider konnte mit Google nicht besonders helfen
Mit ersteller meine ich - den Benutzer der diese Datei auf die Festplatte kopiert/verschoben/erstellt hat.
Ich benötige es um statistiken anzufertigen.
Danke schonmal
ich möchte gerne verschiedene Informationen von verschiedenen Daten/-Typen auslesen.
Wer hat die datei erstellt, wer ist besitzer, wer hat welche rechte. Naja das mit der größe und so ist ja recht leicht.
Leider konnte mit Google nicht besonders helfen
Mit ersteller meine ich - den Benutzer der diese Datei auf die Festplatte kopiert/verschoben/erstellt hat.
Ich benötige es um statistiken anzufertigen.
Danke schonmal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 109660
Url: https://administrator.de/forum/dateiinformationen-per-batch-auslesen-109660.html
Ausgedruckt am: 22.12.2024 um 10:12 Uhr
4 Kommentare
Neuester Kommentar
Hallo rony-x2!
Grüße
bastla
Wer hat die datei erstellt,
Mir ist keine Methode bekannt, das herauszufinden ...wer ist besitzer,
Ließe sich etwa mit folgendem (in einen Batch integrierten) VBScript ermitteln (wobei unter Vista der Wert 8 in Zeile 7 durch 10 zu ersetzen wäre - siehe zB hier):@echo off & setlocal
set "Ordner=D:\Dein Ordner"
set "Datei=Deine Datei.Typ"
set G=%temp%\GetExtFileAttr.vbs
>%G% echo Set Fld=CreateObject("Shell.Application").Namespace(WScript.Arguments(0)):For Each F In Fld.Items
>>%G% echo If LCase(F.Name)=LCase(WScript.Arguments(1)) Then:WScript.Echo Fld.GetDetailsOf(F,8):Exit For:End If:Next
for /f "delims=" %%i in ('cscript //nologo %G% "%Ordner%" "%Datei%"') do set "Besitzer=%%i"
echo Besitzer: %Besitzer%
wer hat welche rechte
cacls "D:\Dein Ordner\Deine Datei.Typ"
bastla
Hallo rony-x2!
Zum Auslesen des Besitzers: Getestet hatte ich's nur unter XP und mich auf die Angabe in der verlinkten Tabelle verlassen, aber als Alternative könnte ich eine Zeile zur Verwendung mit setacl anbieten:
Um das Ganze in eine Schleife zu packen, ungetestet etwa so:
Bitte beachten: Die Angabe des Basispfades in Zeile 2 muss mit einem "\" enden ...
Grüße
bastla
Zum Auslesen des Besitzers: Getestet hatte ich's nur unter XP und mich auf die Angabe in der verlinkten Tabelle verlassen, aber als Alternative könnte ich eine Zeile zur Verwendung mit setacl anbieten:
for /f "tokens=1*" %%i in ('setacl -on "D:\Deine Ordner\Deine Datei.Typ" -ot file -actn list -lst "f:tab;w:o"^|findstr "Owner:"') do set "Besitzer=%%j"
@echo off & setlocal
set "Basis=C:\Fraps\"
set "Typ=*.*"
set "Erg=C:\cac.txt"
if exist "%Erg%" del "%Erg%"
for /f "delims=" %%i in ('dir /s /b /a-d-h "%Basis%%Typ%"') do (
echo Datei: %%i
for /f "tokens=1*" %%a in ('setacl -on "%%i" -ot file -actn list -lst "f:tab;w:o"^|findstr "Owner:"') do echo Besitzer: %%b
cacls "%%i"
echo ==============================================
echo\
)>>"%Erg%"
Grüße
bastla