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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 138612
Url: https://administrator.de/contentid/138612
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
2 Kommentare
Neuester Kommentar
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
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
Hallo manilo101!
Schematisch (und ungetestet) etwa so:
Wenn Du auf Nummer sicher gehen willst, kannst Du zB ein MD5-Tool verwenden ...
Grüße
bastla
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%
)
Grüße
bastla