Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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 rechnen mit Aufrunden

Frage Entwicklung Batch & Shell

Mitglied: MISTAX

MISTAX (Level 1) - Jetzt verbinden

27.08.2008, aktualisiert 18.10.2012, 9019 Aufrufe, 2 Kommentare

Hallo,

ich hab mich jetzt hier 2 Stunden durchgelesen, aber irgendwie will sich die Lösung nicht finden lassen...

Ich möchte per Batch Folgendes machen:

Dateigröße von %file% in eine Variable schreiben.

01.
for %%F in (%file%) do set/a groesse=%%~zF
und dann diesen Wert durch 1048576 teilen, damit ich MB bekomme.
01.
set/a megabyte=%groesse%/1048576
Wenn ich mir aber das %megabyte% per echo ausgeben lasse kommt:

01.
Ungültige Zahl. Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits. 
02.
ECHO ist ausgeschaltet (OFF).
Vermutlich wegen der zuvielen Nachkommastellen; die brauche ich auch garnicht, mir reicht der Wert vor dem Komma.


Wie bekomme ich es also hin, dass er mir einen gerundeten Wert, bzw. wegen mir auch nur die Stellen vor dem Komma rausgibt?

(nicht hauen, wenns einfach ist, ich sitz heute irgendwie neben mir)

Achja - vielen Dank im Vorraus natürlich für jede Hilfe! Wenn es per VBS einfacher geht, auch gerne so - ich kann nur überhaupt kein VBS...
Mitglied: MISTAX
27.08.2008 um 16:07 Uhr
So schnell kanns gehen... Habe lauter gefundene Codeschnipsel aneinandergehängt und schon funktionierts:

01.
@echo off & setlocal 
02.
set Zahl1=%file% 
03.
set Zahl2=1048576 
04.
set Stellen=0 
05.
 
06.
set R=Rechne.vbs 
07.
echo Set a=WScript.Arguments:WScript.Echo FormatNumber(Eval(a(0)),a(1))>%R% 
08.
for /f %%i in ('cscript //nologo %R% "%Zahl1%/%Zahl2%" %Stellen%') do set Ergebnis=%%i 
09.
echo %Ergebnis% 
10.
del Rechne.vbs
Gerne Verbesserungsvorschläge...
Bitte warten ..
Mitglied: bastla
27.08.2008, aktualisiert 18.10.2012
Hallo MISTAX!

Da Du schon einen Weg gefunden hast, vielleicht nur noch als Anmerkung: Das Problem sind nicht die Nachkommastellen (solche verwendet die CMD-Shell-Arithmetik überhaupt nicht), sondern die Stellen vor dem Komma ...

... mehr dazu in diesem Beitrag.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Alle Ordner bis auf die letzten 3 per Batch löschen (5)

Frage von Stefan2733 zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (23)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (19)

Frage von smartino zum Thema Mac OS X ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...

Linux Netzwerk
DHCP IP-vergabe erst nach 1-2 Minuten (11)

Frage von Maik82 zum Thema Linux Netzwerk ...