90776
04.07.2010, aktualisiert am 15.08.2010
8690
15
0
Ordnergrösse und , oder Anzahl der Dateien per Batch , VB auslesen
Hallo
Wie der Titiel schon sagt suche ich eine Möglichkeit die Ordnergrösse und , oder Anzahl der Dateien auszulesen.
Hintergrund:
Robocopy mit der anzeige
???MB von ???MB kopiert
oder
??? Dateien von ??? Dateien kopiert
Dank und Gruss
Switcher
Wie der Titiel schon sagt suche ich eine Möglichkeit die Ordnergrösse und , oder Anzahl der Dateien auszulesen.
Hintergrund:
Robocopy mit der anzeige
???MB von ???MB kopiert
oder
??? Dateien von ??? Dateien kopiert
Dank und Gruss
Switcher
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 146169
Url: https://administrator.de/contentid/146169
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
15 Kommentare
Neuester Kommentar
Also ein Script um die Ordnergröße auszulesen, hat Biber oder bastla (weiß ich nicht mehr genau) geschrieben:
Und mit Robocopy bin ich überfragt, damit hab ich mich noch nie beschäftigt. Aber ich kann mir vorstellen, dass man, um die Anzahl der Dateien/Ordner rauszubekommen, den Befehl "Dir" nimmt.
MfG Karsten
set "FS="
set "FS=%temp%\GetFolderSize.vbs
set "ZO="
set "ZO=..." <-- Hier deinen Ordner angeben, von dem du die Größe haben willst
echo WScript.Echo Int(CreateObject("Scripting.FileSystemObject").GetFolder(WScript.Arguments(0)).Size/1024/1024+.99)>%FS%
for /f %%g in ('cscript //nologo %FS% "%ZO%"') do set OGr=%%g
echo %OGr%
Und mit Robocopy bin ich überfragt, damit hab ich mich noch nie beschäftigt. Aber ich kann mir vorstellen, dass man, um die Anzahl der Dateien/Ordner rauszubekommen, den Befehl "Dir" nimmt.
MfG Karsten
Moin switcher94,
ergänzend zu kkboy94s Hinweisen noch zwei bis drei Anmerkungen
1) es gibt einige CmdLine-Utilities, die nur für diesen Zweck "Dateien und Dateigrößen eines Ordners inklusive Unterordner" geschrieben wurden.
Und die es hübsch kompakt und vor allem schnell anzeigen. "diruse", "diskusage" oder "du" wären ein paar übliche Namen.
2) unter VB/VBSkript ist eine der üblichen ersten Lauflern- und Turnübungen genau dieses rekursive Ordnerdurchwackeln und durchzählen.
Dazu findest du im Netz sicherlich ein paar Tonnen Beispielsourcen.
3) und zu guter Letzt:
Oder willst du eine Fortschrittsanzeige zusammenlügen?
Wenn ja:
Für wen? Wer braucht es, wer würde dafür den Aufwand bezahlen?
Grüße
Biber
ergänzend zu kkboy94s Hinweisen noch zwei bis drei Anmerkungen
1) es gibt einige CmdLine-Utilities, die nur für diesen Zweck "Dateien und Dateigrößen eines Ordners inklusive Unterordner" geschrieben wurden.
Und die es hübsch kompakt und vor allem schnell anzeigen. "diruse", "diskusage" oder "du" wären ein paar übliche Namen.
2) unter VB/VBSkript ist eine der üblichen ersten Lauflern- und Turnübungen genau dieses rekursive Ordnerdurchwackeln und durchzählen.
Dazu findest du im Netz sicherlich ein paar Tonnen Beispielsourcen.
3) und zu guter Letzt:
???MB von ???MB kopiert
oder
??? Dateien von ??? Dateien kopiert
Who cares? What says it out... bzw. was transportiert das für relevante Informationen?oder
??? Dateien von ??? Dateien kopiert
Oder willst du eine Fortschrittsanzeige zusammenlügen?
Wenn ja:
Für wen? Wer braucht es, wer würde dafür den Aufwand bezahlen?
Grüße
Biber
Ist eine Fortschrittsanzeige wirklich so schwer, bzw. ist der Aufwand so groß.
Ich hab vor kurzem mal sowas erstellt:
Dann wird zwar jedesmal wieder der Bildschirm gelöscht, aber es funktioniert.
Bei einer Fortschrittsanzeige für Robocopy müsste doch dann jede einzelne Datei einzeln kopiert werden, oder?
MfG Karsten
Ich hab vor kurzem mal sowas erstellt:
cls
echo Warten
ping -n 2 localhost >nul
cls
echo Warten.
ping -n 2 localhost >nul
cls
echo Warten..
ping -n 2 localhost >nul
cls
echo Warten...
ping -n 2 localhost >nul
cls
echo Warten....
Bei einer Fortschrittsanzeige für Robocopy müsste doch dann jede einzelne Datei einzeln kopiert werden, oder?
MfG Karsten
Ich meine auch, es gab hier im Forum schonmal Ansätze fürs Zählen von Ordnern/Dateien. Such einfach mal ein bisschen.
Und wenn du genau weißt, welche Ordner/Dateien zu kopieren sind, kannst du ja einfach für jede Datei einen eigenen Befehl zusammenschustern, und dann in mein Beispiel anstatt des "echo Warten" einfügen.
MfG Karsten
PS: Du sagst ja "Es geht eigentlich nur um ausprobieren, tüfteln, etc.". Mach das doch einfach mal und poste deine Ergebnisse. Nix für ungut
Und wenn du genau weißt, welche Ordner/Dateien zu kopieren sind, kannst du ja einfach für jede Datei einen eigenen Befehl zusammenschustern, und dann in mein Beispiel anstatt des "echo Warten" einfügen.
MfG Karsten
PS: Du sagst ja "Es geht eigentlich nur um ausprobieren, tüfteln, etc.". Mach das doch einfach mal und poste deine Ergebnisse. Nix für ungut
Moin Zwitscher,
Wichtig ist nur, dass du eben auch das Vorzeichen kennst - es ist toll und ein echtes Erfolgserlebnis, so etwas hinzubekommen.
Aber den Aufwand wird dir keiner bezahlen.
Zu zweiten - da Xcopy/Robocopy/NTBackup etc monolithische Befehle sind, die dir NICHT erlauben innerhalb des "Starte-Kopiererei" bis "Ende-Kopiererei"-Blocks bei dem Ereignis "Habe eine einzelne Datei kopiert" einzugreifen....
--> dann musst du die ganze rekursive Verzeichnisstruktur-Kopiererei auch selbst programmieren.
Lass dich nicht davon abschrecken... es übt.
P.S. Wenn du damit fertig bist - was machst du mit restlichen 4 Wochen 6 1/2 Tagen Schulferien? *g
Grüße
Biber
Zitat von @90776:
Danke erstmal
Es geht eigentlich nur um ausprobieren, tüfteln, etc.
Und jein Biber es geht zum Teil um eine Fortschrittsanzeige, denn ich habe noch 5 Wochen Schulferien und wollte ein bisschen
rumpropbieren
Na ja, da wäre ich bestimmt der Letzte, der versuchen würde, jemand vom Ausprobieren und tüfteln abzuhaltenDanke erstmal
Es geht eigentlich nur um ausprobieren, tüfteln, etc.
Und jein Biber es geht zum Teil um eine Fortschrittsanzeige, denn ich habe noch 5 Wochen Schulferien und wollte ein bisschen
rumpropbieren
Wichtig ist nur, dass du eben auch das Vorzeichen kennst - es ist toll und ein echtes Erfolgserlebnis, so etwas hinzubekommen.
Aber den Aufwand wird dir keiner bezahlen.
Zu zweiten - da Xcopy/Robocopy/NTBackup etc monolithische Befehle sind, die dir NICHT erlauben innerhalb des "Starte-Kopiererei" bis "Ende-Kopiererei"-Blocks bei dem Ereignis "Habe eine einzelne Datei kopiert" einzugreifen....
--> dann musst du die ganze rekursive Verzeichnisstruktur-Kopiererei auch selbst programmieren.
Lass dich nicht davon abschrecken... es übt.
P.S. Wenn du damit fertig bist - was machst du mit restlichen 4 Wochen 6 1/2 Tagen Schulferien? *g
Grüße
Biber
Hallo switcher94,
DIR /S könnte dir helfen (aber für Laufzeiten von dreiundzwanzigeinhalb Stunden kann ich keine Gewähr übernehmen).
<EDIT>
findstr könnte es etwas beschleunigen
Falls du ausreichend Rechte hast, kannst du dir auch mal die Ausgabe von
ansehen.
<EDIT>
Grüße
rubberman
DIR /S könnte dir helfen (aber für Laufzeiten von dreiundzwanzigeinhalb Stunden kann ich keine Gewähr übernehmen).
@echo off &setlocal
for /f "tokens=3" %%i in ('dir /-c /s D:\^|findstr /b /c:" "') do (
call set "belegt=%%frei%%"
set "frei=%%i"
)
echo Belegt: %belegt% Bytes
echo Frei: %frei% Bytes
pause
<EDIT>
findstr könnte es etwas beschleunigen
Falls du ausreichend Rechte hast, kannst du dir auch mal die Ausgabe von
fsutil volume diskfree D:
<EDIT>
Grüße
rubberman
Moin switcher94,
für die Tausender-Punkte/Striche sind zuständig
Suchmaschine mal nach "Vbskript Formatnumber" und schau es dir bei einer der ersten 5 Fundstellen an.
Grüße
Biber
für die Tausender-Punkte/Striche sind zuständig
- der fünfte Parameter der FormatNumber-Function (optional und deshalb bei dir nicht gesetzt)
- und ggf. die "Regionalen Einstellungen", die für einen deutsch-windowsigen Rechner aber anders aussehen sollten.
Suchmaschine mal nach "Vbskript Formatnumber" und schau es dir bei einer der ersten 5 Fundstellen an.
Grüße
Biber