Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Verzeichnisgrößen vergleichen und Differenz ausgeben

Mitglied: crazyhoesl

crazyhoesl (Level 1) - Jetzt verbinden

12.12.2007, aktualisiert 13.12.2007, 6554 Aufrufe, 8 Kommentare

Hallo,

ich möchte was ganz simples an dem ich aber im Moment verzweifle..

Ich möchte eine Batch die mir von 2 Laufwerken die Differenz des belegten Speicherplatzes anzeigt,

also z.b.

Platte R: hat 400GB belegt

Platte T: hat 750GB belegt.

jetzt ist die Differenz und zugleich das Ergebnis das ich mir wünsche 250GB.

Eine Information kann noch wichtig sein: Platte R: kann NIE größer sein als Platte T:, man kann also immer T-R rechnen.

Hat jemand eine Idee?

Viele Grüße,

crazyhoesl
Mitglied: miniversum
12.12.2007 um 19:01 Uhr
Versuchs mal Damit:
01.
@echo off 
02.
set lw1=R: 
03.
set lw2=T: 
04.
 
05.
FOR /F "tokens=3 delims= " %%i in ('dir %lw1%') do set lw1size=%%i 
06.
FOR /F "tokens=3 delims= " %%i in ('dir %lw2%') do set lw2size=%%i 
07.
set lw1size=%lw1size:.=% 
08.
set lw2size=%lw2size:.=% 
09.
set lw1size=%lw1size:~0,-6% 
10.
set lw2size=%lw2size:~0,-6% 
11.
 
12.
set /a dif=%lw2size%-%lw1size% 
13.
 
14.
echo Platte %lw1% hat %lw1size% GByte belegt. 
15.
echo Platte %lw2% hat %lw2size% GByte belegt. 
16.
echo Die Differenz ist %dif% GByte.
Die umrechnung vom Byte in GByte ist hier allerdings der einfachheit halber /1000000 (die letzten 6 Stellen abgeschnitten).
miniversum
Bitte warten ..
Mitglied: crazyhoesl
12.12.2007 um 22:54 Uhr
Vielen Dank! Genau das habe ich gebraucht!
Bitte warten ..
Mitglied: crazyhoesl
12.12.2007 um 23:25 Uhr
Jetzt habe ich doch ein Problem

Die Zahl die die Batch ausgibt ist nicht der belegte Speicher, sondern der freie Speicherplatz.

Jetzt gebe ich zu das es mit dem "dir" Befehl nicht recht einfach ist den belegten Speicherplatz zu bekommen, da er nur für den jeweiligen Pfad die belegten Bytes ausgibt. Also um zwei Festplatten zu vergleichen ist dieser Befehl wohl nicht zu empfehlen.

Aber in meinem Fall haben beide Laufwerke keinerlei Unterordner. Das ist jetzt wohl Glück, aber wie kann ich beeinflussen dass er die belegten Bytes nimmt?

Vielen Dank!
Bitte warten ..
Mitglied: crazyhoesl
13.12.2007 um 00:09 Uhr
Ich denke ich habe es mir selber fast schon gelöst:

01.
@echo off 
02.
set lw1=c: 
03.
set lw2=z: 
04.
 
05.
FOR /F "tokens=3 delims= " %%i in ('dir %lw1%^|find "Datei"') do set lw1size=%%i 
06.
FOR /F "tokens=3 delims= " %%i in ('dir %lw2%^|find "Datei"') do set lw2size=%%i 
07.
 
08.
set lw1size=%lw1size:.=% 
09.
set lw2size=%lw2size:.=% 
10.
 
11.
set /a lw1size=%lw1size%/1073741824 
12.
set /a lw2size=%lw2size%/1073741824 
13.
 
14.
set /a dif=%lw2size%-%lw1size% 
15.
 
16.
echo Platte %lw1% hat %lw1size% GByte belegt. 
17.
echo Platte %lw2% hat %lw2size% GByte belegt. 
18.
echo Die Differenz ist %dif% GByte. 
19.
 
Ich habe nur ein Problem, die Rechnung funktioniert nicht... Kann es daran liegen dass die Zahl zu lang/groß ist die berechnet werden muss?

Danke, crazyhoesl
Bitte warten ..
Mitglied: 58502
13.12.2007 um 00:35 Uhr
Das klappt so nicht, er zählt nämlich nur die Dateien, die Verzeichnisse nicht. Wenn im Root des Laufwerks keine Dateien vorhanden sind, ist lwxsize=0

Die etwas kompliziertere Version, die wahrscheinlich hier aus dem Forum stammt:
01.
 
02.
::------snipp Dirsize.cmd (Parameter1 Verzeichnisname [opt Par2: /R wie Rekursiv] /opt. par3 =Ebenen 
03.
@echo off & setlocal & Set DIRCMD= 
04.
IF /i [%2]==[/R] for /R "%~1" %%a in (.) do @%0 "%%a" %3 
05.
if not [%2]==[] Set /a "Level=%2+2" 
06.
if defined level for /f "delims= tokens=1,%level%" %%i in ("%~1") do if not [%%j]==[] goto :eof 
07.
If exist "%1" (    
08.
  for /f "tokens=3" %%c in ('dir "%~1" /s ^2^>nul^| findstr /c:"Datei(en)" ') do set DirSize=%%c 
09.
10.
set "space20=____________________" 
11.
if defined DirSize set "Dirsize=%space20%%Dirsize%" 
12.
if defined DirSize echo %DirSize:~-15%    %~f1

Edit da isse:
Bitte warten ..
Mitglied: Biber
13.12.2007 um 07:16 Uhr
Moin crazyhoesl,

Ich habe nur ein Problem, die Rechnung funktioniert nicht...
Kann es daran liegen dass die Zahl zu lang/groß ist die berechnet werden muss?

Jepp, diese Vermutung ist richtig, wie Dir ein kurzer Test am CMD-Prompt zeigen würde:
01.
>set /a 1073741824/1073741824 
02.
03.
>set /a 1001073741824/1073741824 
04.
Ungültige Zahl. Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits.
Bedeutet, bei den heutzutage üblichen MediaMarkt-Einsteiger-Plattengrößen kommst Du mit der Ausgabe des normalen DIR-Befehls (die immer in Byte ist) nicht weiter, wenn Du "rechnen" willst.
Du musst also ein Utility verwenden, dass die die Größe in MByte/GByte ausgibt.
Irgendeins von den vielen DirSize/DiskUse/DU/DirUsage-Freeware-Utilities.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
13.12.2007 um 11:13 Uhr
Hallo crazyhoesl!

Du musst also ein Utility verwenden, dass die die Größe in MByte/GByte ausgibt.
Irgendeins von den vielen DirSize/DiskUse/DU/DirUsage-Freeware-Utilities.
... oder ein wenig VBS:
01.
@echo off & setlocal 
02.
set "D=%temp%\Difference.vbs" 
03.
echo Set fso=CreateObject("Scripting.FileSystemObject"):WScript.Echo Int((fso.GetFolder("T:\").Size-fso.GetFolder("R:\").Size)/1024/1024/1024)>%D% 
04.
for /f %%i in ('cscript //nologo %D%') do set Diff=%%i 
05.
echo %Diff%
Zur Genauigkeit: Das Ergebnis wird immer auf eine ganze Zahl abgerundet ausgegeben (Dezimalstellen werden einfach weg gelassen). Berücksichtigt wird die Gesamtgröße der Dateien und Ordner.

Alternativ dazu (und eigentlich die exakte Umsetzung Deiner Anforderung "Differenz des belegten Speicherplatzes"):
01.
@echo off & setlocal 
02.
set "D=%temp%\Difference.vbs" 
03.
echo Set fso=CreateObject("Scripting.FileSystemObject"):WScript.Echo Int(((fso.GetDrive("T").TotalSize-fso.GetDrive("T").FreeSpace)-(fso.GetDrive("R").TotalSize-fso.GetDrive("R").FreeSpace))/1024/1024/1024)>%D% 
04.
for /f %%i in ('cscript //nologo %D%') do set Diff=%%i 
05.
echo %Diff%
Der belegte Speicherplatz wird hier ermittelt: (Gesamtkapazität der Partition - freier Speicher der Partition). Die Rundung des Ergebnisses erfolgt wie oben angegeben.

Grüße
bastla
Bitte warten ..
Mitglied: crazyhoesl
13.12.2007 um 12:26 Uhr
Super!

Vielen Dank wie immer für euer Unterstützung!!!!

crazyhoesl
Bitte warten ..
Ähnliche Inhalte
Datenbanken

Access Tabellen vergleichen, Abweichungen ausgeben

gelöst Frage von Dr.CornwallisDatenbanken6 Kommentare

Liebe Gemeinde, ist es mit einer Access Abfrage möglich, den Unterschied zweier Tabellen auszugeben(ohne VBA Code)? Ich hätte jetzt ...

Microsoft Office

2 Tabellen vergleichen und aus Zelle wert ausgeben

Frage von BatzmaMicrosoft Office5 Kommentare

Hallo da draußen! Ich weiß ich es gibt genügend Posts darüber jedoch bin ich nach mittlerweile 3h zu sauer ...

DNS

Multihomed Server 2016 - Differenzen zu 2012 ?

gelöst Frage von Franki42DNS4 Kommentare

Moin, moin, auch Sonntags kreisen die Gedanken um Probleme der Arbeit :) Folgende Konstellation: Als erstes, alle grundlegenden Best ...

Batch & Shell

Batch - Differenz zwischen zwei Zeilen ermitteln

Frage von ooDavidBatch & Shell3 Kommentare

Hi, ich habe ein Textfile in der in jeder Zeile eine Zahl steht (Sekunden). 380 428 455 458 464 ...

Neue Wissensbeiträge
Humor (lol)
Meine Variante der DSGVO
Tipp von Henere vor 1 TagHumor (lol)2 Kommentare

Datenschutzerklärung Jede gute Website braucht eine Datenschutzerklärung? Ok, dann machen Sie sich auf etwas gefasst. Präambel Artikel 12 der ...

Administrator.de Feedback

Entwicklertagebuch: Datenschutzerklärung nach DS-GVO

Information von admtech vor 1 TagAdministrator.de Feedback

Hallo Administrator User, Wir respektieren eure Privatsphäre und möchten euch daher auf die Möglichkeiten für den Umgang mit euren ...

Voice over IP

Rufnummernblock aufbrechen nun möglich bei DTAG

Tipp von Datenreise vor 1 TagVoice over IP

Bei der Telekom ist es seit einigen Tagen laut Aussage der Geschäftskunden-Hotline möglich, eine Rufnummernübernahme auch dann durchzuführen, wenn ...

Netzwerke
Riesiges Botnetz in Deutschland
Tipp von FFSephiroth vor 1 TagNetzwerke1 Kommentar

Überprüft mal eure Router und NAS

Heiß diskutierte Inhalte
Voice over IP
VOIP: Lösungen für Notruf?
Frage von MimemmmVoice over IP26 Kommentare

Hey Welche Möglichkeiten hat man eigentlich noch bei VOIP um zuverlässige Notrufe zu ermöglichen? Ein aufgeladenes Handy habe ist ...

Windows Server
Fragwürdige GPO Fehler im Syslog
gelöst Frage von Ex0r2k16Windows Server13 Kommentare

Hallo! Ich kriege bei manchen (oder sogar allen? -prüfe noch) Clients folgenden Fehler bei mehreren GPOs (aber nicht bei ...

Windows Server
DHCP und Regeln und Filter
Frage von OlliPWSWindows Server10 Kommentare

Guten Tag, wir haben folgende Problematik: Wir haben diverse ca. 130 Avaya VoIP Telefone, diese sollen per DHCP automatisch ...

Windows Server
Nach KB4103718 RDP auf Windows 2003 Server
gelöst Frage von Bl0ckS1z3Windows Server9 Kommentare

Hallo Admins, im KB4103718 ist ja der Patch für den RDP-Server und Client enthalten. Wir haben aber noch Windows ...