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

Frage Entwicklung Batch & Shell

Mitglied: crazyhoesl

crazyhoesl (Level 1) - Jetzt verbinden

12.12.2007, aktualisiert 13.12.2007, 6530 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 ...

Batch & Shell
Verzeichnisgröße auslesen, dabei Ordner exkludieren.
gelöst Frage von joes1609Batch & Shell4 Kommentare

Hallo, ich habe folgendes Problem: Ich habe ein Batch, welches mir die Größe eines bestimmten Verzeichnisses ausgibt. Nun möcht ...

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 ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 19 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 23 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 5 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Windows 10
Probleme mit Dateien, deren Pfad + Dateiname länger als 256 Zeichen sind
Frage von FalaffelWindows 109 Kommentare

Guten Tag, unter Windows 10 scheint es immer noch das Problem zu geben, dass der Pfad + Dateiname einer ...