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

Batch: Wert aus Zeile herausfiltern und dann Bytes in Gigabytes umrechnen

Mitglied: yakazaa

yakazaa (Level 1) - Jetzt verbinden

08.05.2014 um 18:00 Uhr, 2550 Aufrufe, 5 Kommentare

Hallo zusammen,

ich habe mir mit viel Bastelei eine Textdatei %HOSTNAME%.txt erzeugen lassen in der jeweils nur diese eine Zeile steht:

12 Dir(s) 37.184.610.304 bytes free

Ist halt die letzte Zeile des DIR Befehls, diese wird zentral von ca. 100 Systemen eingesammelt.

Jetzt rechne ich seltenst in Bytes und möchte diesen Wert daher in Gigabytes umrechnen lassen, am liebsten auch per Script - aber wie?
Zuerst müsste ich ja den Wert erstmal als solchen isolieren, aber dann?

Freue mich auf eure Ideen,
Dominik
Mitglied: ThomasM
08.05.2014, aktualisiert um 20:09 Uhr
Bei dieser Zahlengröße wirst du die Fehlermeldung "Ungültige Zahl. Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits.", da Du in CMD nur mit Zahlen von -2147483648 bis 2147483647 rechnen kannst.

Ich hab es grad getestet. Das Auschneiden von Werten ist ganz gut im Netz erklärt. Einfach mal googeln. Das hilft dir an dieser Stelle aber nicht weiter. Du solltest daher z.B. über ein VBScript gehen.

Das gleiche Problem wurde hier schon einmal besprochen. Daher anbei der Link.
https://www.administrator.de/forum/umrechnung-von-byte-auf-gigabyte-1823 ...
Bitte warten ..
Mitglied: bastla
08.05.2014 um 20:35 Uhr
Hallo yakazaa!

Wie ThomasM (BTW: Willkommen im Forum!) schon erklärt hat, kann das ein Batch arithmetisch nicht leisten - was allerdings ginge, wäre die Byte-Angabe zunächst als Text zu interpretieren und dann durch Weglassen von 9 Stellen am Ende zu einer durch 1 Milliarde dividierten (abgerundeten) Zahl zu machen - für Dein dir etwa so:
01.
@echo off & setlocal 
02.
for /f "tokens=3" %%i in ('dir /-c D:') do set "B=%%i" 
03.
set "GB=%B:~,-9%" 
04.
if not defined GB ( 
05.
    echo weniger als 1 GB frei 
06.
) else ( 
07.
    echo mindestens %GB% GB frei 
08.
)
Grüße
bastla
Bitte warten ..
Mitglied: rubberman
08.05.2014, aktualisiert um 21:07 Uhr
Hallo Dominik,

unabhängig davon, dass man vermutlich nicht mit einer temporären Datei arbeiten muss und dass der DIR Befehl zudem die Option /-C unterstützt, um das Tausendertrennzeichen zu unterdrücken, gibt es auch Workarounds für Batch pur um das 32Bit Limit zu umschiffen.
Bspw.:
01.
@echo off &setlocal 
02.
 
03.
set "line=12 Dir(s) 37.184.610.304 bytes free" 
04.
for /f "tokens=3" %%i in ("%line:.=%") do call :B2GiB %%i 
05.
echo %errorlevel:~0,-2%,%errorlevel:~-2% 
06.
pause 
07.
 
08.
goto :eof 
09.
 
10.
:B2GiB 
11.
setlocal EnableDelayedExpansion 
12.
set "B=%~1" 
13.
set "highPart=%B:~0,-6%" 
14.
set "lowPart=%B:~-6%" 
15.
set /a "KB = highPart / 1024 * 1000000, borrow = highPart %% 1024" 
16.
if %borrow% gtr 0 ( 
17.
  set "lowPart=%borrow%%lowPart%"" 
18.
) else ( 
19.
  for /l %%a in (1,1,5) do if "!lowPart:~0,1!" equ "0" set "lowPart=!lowPart:~1!" 
20.
21.
set /a "KB += lowPart / 1024, GB = KB / 1048576, HH = KB %% 1048576 * 100 / 1048576" 
22.
if %HH% lss 10 set "HH=0%HH%" 
23.
endlocal&exit /b %GB%%HH%
Versteht sich von selbst, dass man den Wert für die Variable line auch aus deiner Datei einlesen kann.
<"%HOSTNAME%.txt" set /p "line="
Grüße
rubberman

EDIT: DelayedExpansion vergessen
Bitte warten ..
Mitglied: ThomasM
08.05.2014 um 20:51 Uhr
Na siehste, mal wieder was dazu gelernt. ;)
Bitte warten ..
Mitglied: ThomasM
08.05.2014, aktualisiert um 20:59 Uhr
Zitat von bastla:
(BTW: Willkommen im Forum!)

Danke. Hab mich gerade angemeldet, da ich seit letzter Woche der neue Admin bin. Der alte Admin in meiner Firma hatte keine Lust mehr. Ich hab bisher mehr Clients und CAD-Systeme betreut. Von Servern hab ich schon gute 8 Jahre nichts mehr gesehen. ^^
Bitte warten ..
Ähnliche Inhalte
Ausbildung

Durchsuchen alle Zeilen einer Textdatei und die gleiche Zeilen herausfiltern und anzeigen

gelöst Frage von MihailAusbildung17 Kommentare

Guten Abend, Ich melde mich ernuet mit der Bitte mir falls möglich zu helfen. Ich muss aus einigen txt-Dateien ...

Batch & Shell

String herausfiltern

gelöst Frage von goodbytesBatch & Shell5 Kommentare

Hallo, ich möchte gerne bei vielen Maschinen per Loginscript den FQDN ermitteln. Dafür wollte ich ihn aus der Rückgabe ...

Microsoft Office

Werte aus Spalten in Zeilen suchen und zweiten Wert zuordnen

Frage von frosch44Microsoft Office1 Kommentar

Guten Morgen, hier ist der Aprilscherzmacher :-) Heute suche ich folgende Lösung: Ich habe Spalte A mit Daten und ...

Microsoft Office

Wenn Wert doppelt, dann Zeile darunter einfügen

gelöst Frage von PhilosophMicrosoft Office12 Kommentare

Hallo alle zusammen! Ich habe eine Exceldatei mit 5 Spalten. In Spalte A befinden sich Kundennummern, in Spalte B ...

Neue Wissensbeiträge
Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 StundenAdministrator.de Feedback7 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 19 StundenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 1 TagSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...