manilo101
Goto Top

Rechtsklick - Eigenschaften von Ordner auch per Komandozeile abrufbar?

Hallo,

ich hoffe, dass mir hier der ein oder andere Batch-Profi helfen kann.

Ich mache eine Datensicherung per batch. Dazu nutze ich rsync mit cygwin. Das funktioniert soweit gut. Allerdings hätte ich noch gern eine Möglichkeit gefunden, die Daten aus den Quellen mit denen aus dem Backup zu vergleichen. Das ganze nicht zwingend inhaltlich aber in Hinsicht auf Größe der Ordner, Anzahl der Unterordner und Anzahl der Datein. Wenn ich einen Ordner unter Windows rechts klicke erhalte ich unter Eigenschaften u.a. folgende Werte:

Größe (In MB und Bytes)
Größe auf Datenträger (In MB und Bytes)
Inhalt ( Anzahl Dateien, Anzahl Ordner)

Kann ich diese Werte per Komandozeile auslesen? Ich würde gern diese für das Original und das Backup tun. Ich gehe davon aus, dass, wenn es dabei keine Unterschiede zwischen Original und Backup gibt, das Backup erfolgreich war. Auch wenn da sicher keine 100% Sicherheit dabei ist würde das für meine Zwecke reichen.
Ich habe nun hier über das Forum die Variante mit "dir /s" auf den jeweiligen Ordner, Umleitung der Ausgabe in eine Textdatei, und diese beiden Datein mittels DOS-Befahl fc (filecompare) zu vergleichen. Die entsprechende Batch sieht bei mir so aus:

Dir c:\serverbackup /s >B:\LW1.txt
Dir S:\NVIDIA /s >B:\LW2.txt

fc B:\lw1.txt B:\lw2.txt >B:\Vergleich.txt

Dabei ist serverbackup selbsterklärend. Den Ordner "Nvidia" hab ich halt zum Testen ausgewählt.

Die Verleich.txt sieht wie folgt aus:

Vergleichen der Dateien B:\LW1.txt und B:\LW2.TXT
* B:\LW1.txt
Datentr„ger in Laufwerk C: ist WindowsXP
Volumeseriennummer: 80B7-05BA

Verzeichnis von c:\serverbackup

07.10.2009 12:42 <DIR> .
07.10.2009 12:42 <DIR> ..
07.10.2009 12:42 <DIR> Win2KXP
* B:\LW2.TXT
Datentr„ger in Laufwerk S: ist AdvancedServer
Volumeseriennummer: C099-4F9B

Verzeichnis von S:\NVIDIA

18.03.2010 23:59 <DIR> .
18.03.2010 23:59 <DIR> ..
07.10.2009 12:42 <DIR> Win2KXP
*

* B:\LW1.txt

Verzeichnis von c:\serverbackup\Win2KXP

* B:\LW2.TXT

Verzeichnis von S:\NVIDIA\Win2KXP

*

* B:\LW1.txt

Verzeichnis von c:\serverbackup\Win2KXP\93.71

* B:\LW2.TXT

Verzeichnis von S:\NVIDIA\Win2KXP\93.71

*

* B:\LW1.txt
8 Verzeichnis(se), 14.094.184.448 Bytes frei
* B:\LW2.TXT
8 Verzeichnis(se), 5.184.561.152 Bytes frei
*

Das ist zumindest der Anfang. Aber nicht befriedigend. Mir wäre es lieber, wenn ich irgendwie aus der Kommandozeile die Werte (oder sind das gar im System hinterlegte Variablen?) Größe, Größe auf Datenträger, Inhalt ( Anzahl Dateien, Anzahl Ordner) auslesen, in eine Textdatei umleiten lassen und dann vergleichen könnte.

Any Ideas?

Vielen Dank

MfG
Manilo

Content-ID: 138612

Url: https://administrator.de/contentid/138612

Ausgedruckt am: 14.11.2024 um 05:11 Uhr

StefanKittel
StefanKittel 19.03.2010 um 00:27:32 Uhr
Goto Top
Hallo,

schau Dir sonst auch mal gcopy an. Über den Rückgabewert läßt sich der Erfolg ablesen.
http://www.skittel.de/software/gcopy/aufruf-und-parameter

Stefan
bastla
bastla 19.03.2010 um 00:30:39 Uhr
Goto Top
Hallo manilo101!

Schematisch (und ungetestet) etwa so:
@echo off & setlocal
set "Quelle=c:\serverbackup"  
set "Ziel=S:\NVIDIA"  

for /f "tokens=1-3" %%i in ('dir /s "%Quelle%"^|findstr "Datei(en) Verzeichnis(se)"') do (  
    if "%%j"=="Datei(en)" (set "Dateien=%%i" & set "Bytes=%%k")  
    if "%%j"=="Verzeichnis(se)," set "Ordner=%%i"  
)
set "Ergebnis1=%Ordner%_%Dateien%_%Bytes%"  
for /f "tokens=1-3" %%i in ('dir /s "%Ziel%"^|findstr "Datei(en) Verzeichnis(se)"') do (  
    if "%%j"=="Datei(en)" (set "Dateien=%%i" & set "Bytes=%%k")  
    if "%%j"=="Verzeichnis(se)," set "Ordner=%%i"  
)
set "Ergebnis2=%Ordner%_%Dateien%_%Bytes%"  
if "%Ergebnis1%"=="%Ergbnis2" (  
    echo Ok
) else (
    echo Quelle und Ziel stimmen nicht ueberein:
    Quelle: %Ergebnis1%
    Ziel:   %Ergebnis2%
)
Wenn Du auf Nummer sicher gehen willst, kannst Du zB ein MD5-Tool verwenden ...

Grüße
bastla