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

Zeichenkette mit evtl. Vornullen in Zahl umwandeln

Frage Entwicklung Batch & Shell

Mitglied: Haegar75

Haegar75 (Level 1) - Jetzt verbinden

14.02.2011 um 20:30 Uhr, 8119 Aufrufe, 8 Kommentare

Hallo Leute,
ich zerpflücke in einer For-Schleife einen String und erhalte Zeichenketten wie z.B 0055 oder 2045. Um diese Werte numerisch vergleichen zu können (z.B. grösser 1500 etc.) muss ich sie doch zuerst in eine "Zahl" umwandeln. Hat jemand ne Idee wie ich das geschickt anstellen könnte? Vielen Dank im voraus!
Haegar
Mitglied: Biber
14.02.2011 um 20:44 Uhr
Moin haegar75,

wenn diese "numerischen Teilstrings" beispielsweise alle jeweils 4stellig sind, dann schreib eine 5stellige (runde) Zahl davor und arbeite mit Modulo.

Demo am CMD-Prompt - ich schreibe "10000" vor deinen String "0055"
01.
>set /a 100000055 %10000 
02.
55 
03.
:: ich schreibe "10000" vor den String "2045" 
04.
>set /a 100002045 %10000 
05.
2045 
06.
::oder mit Variable 
07.
>set meinevar=0815 
08.
>set /a 10000%meinevar% % 10000 
09.
815
Prinzip klar?

Grüße
Biber
Bitte warten ..
Mitglied: Haegar75
14.02.2011 um 20:53 Uhr
Du bist ja in Fuchs! Vielen Dank!!!!
Bitte warten ..
Mitglied: AsciWhite
23.03.2016, aktualisiert um 15:31 Uhr
01.
02.
... 
03.
> ::oder mit Variable 
04.
>>set meinevar=0815 
05.
>>set /a 10000%meinevar% % 10000 
06.
> 815 
07.
> 

Hallo,
kann es sein, dass das erst ab Vista und höher geht? Auf WindowsXP bekomme ich die Fehlermeldung "fehlender Operartor". Auf Win7 läuft die Zeile wie erwartet.
Gruss
Bitte warten ..
Mitglied: Biber
23.03.2016 um 15:52 Uhr
Moin AsciWhite,

hab nun grad zufällig kein XP in einer VM auf meinem Nokia installiert, kann deshalb nicht nachschauen.
Aber eine flüchtige Recherche im Technet sagt eigentlich, dass dieses Feature unter XP schon verfügbar war.

Hast du diese Zeile vom CMD-Prompt aus gefeuert oder in einer Batchdatei?

Grüße
Biber
Bitte warten ..
Mitglied: AsciWhite
23.03.2016, aktualisiert um 20:34 Uhr
01.
@echo off 
02.
set meinevar=0815 
03.
set /a 10000%meinevar% % 10000
01.
@echo off 
02.
set /p tmp=Eingabe: 
03.
SET /a 10000%tmp% % 10000
Beides klaptt bei mir nicht :-O Jedes mal bekomme ich die Meldung: fehlender Operator
Habs jetzt über CMD und über Batchdatei probiert - gleicher Effekt :-O

*update*
wenn die Variable %meinevar% mit der 0815 belegt ist klappt die Zeile:

01.
>>set meinevar 
02.
>>meinevar=0815 
03.
 
04.
>>set /a 10000%meinevar% % 10000 
05.
>>815
Also klappt das ganze anscheined über Batchdatei nicht, weil die Variable zu spät aufgelöst wird.
Wie bekomme ich die Ausgabe eigentlich wieder einer Variable zugewiesen? ggf. so: ?
01.
set /a temp=10000%meinevar% % 10000
Bitte warten ..
Mitglied: rubberman
23.03.2016, aktualisiert um 20:56 Uhr
Hallo AsciWhite,

@Biber schrieb:
Demo am CMD-Prompt
und antwortete dir mit einem Wink mit dem Zaunpfahl
Hast du diese Zeile vom CMD-Prompt aus gefeuert oder in einer Batchdatei?
Genau wie bei FOR Variablen und Stringliteralen wird auch beim Modulo-Operator das Prozentzeichen verdoppelt, sobald es in einem Batchscript verwendet werden soll. Und natürlich funktioniert auch eine Zuweisung per SET /A.
set /a num=10000%meinevar% %% 10000
(temp ist vordefiniert, darum sollte man ggf. auf das Überschreiben des Werts verzichten und einen anderen Variablenname verwenden)

Grüße
rubberman
Bitte warten ..
Mitglied: AsciWhite
23.03.2016 um 21:41 Uhr
Hallo rubberman,
was du mir mit dem ersten Teil deiner Antwort sagen willst erschließt sich mir zwar nicht ganz da ich versucht habe die Versuche und Ausgaben darzustellen, aber zum zweiten Teil gibt von mir 5 Sterne :D was so ein beschi**enes %-Zeichen ausmachen kann *roleeyes*.
Jetzt klappt auch mit der Batchdatei ;)

Gruss und schönen Abend
Bitte warten ..
Mitglied: rubberman
23.03.2016 um 22:00 Uhr
Hallo AsciWhite

was du mir mit dem ersten Teil deiner Antwort sagen willst erschließt sich mir zwar nicht ganz
@Biber hat am CMD-Prompt getestet (also direkt in ein CMD Fenster händisch eingegeben), während du mit einem Batchscript arbeiten willst. Da gibt es einige kleine Unterschiede, die aber entscheidend für das Funktionieren des Codes sind.

Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Zahlen in Buchstaben automatisch umwandeln!
gelöst Frage von wingetMicrosoft Office8 Kommentare

Hallo zusammen, ich brauche für eine Datei (Zahlungsformular in Excel) in einer Zeile z.B. A1 die Zahlen und in ...

Microsoft Office
Text in Zahlen umwandeln
Tipp von logischeMicrosoft Office

Beim Import von Daten aus anderen Anwendungen kommt es häufig vor, dass Zahlen als Textwerte in der Excel-Tabelle erscheinen. ...

Batch & Shell
Buchstaben in Zahlen umwandeln
gelöst Frage von KawoosheBatch & Shell8 Kommentare

Hallo, ich wollte mal fragen ob man Buchstaben (groß und klein schreibung egal) in ihre dazugehörige zahl umwandeln kann( ...

Datenbanken
SQL Update-Befehl mit Zeichenketten
gelöst Frage von TlBERlUSDatenbanken6 Kommentare

Hi, mein SQL ist etwas eingerostet und finde dazu nichts hilfreiches im Web. SQL-Server 2008 R2; Ist-Zustand: Datenbank-Spalte mit ...

Neue Wissensbeiträge
Perl

Perl hat heute Geburtstag: 30 Jahre Perl: Lange Gesichter zum Geburtstag

Information von Penny.Cilin vor 1 StundePerl1 Kommentar

Hallo, auch wenn es wenige wissen und noch weniger Leute es nutzen. Perl hat heute Geburtstag. 30 Jahre Perl ...

Sicherheit

Blackberry stirbt - Keine Updates für Priv mehr

Tipp von certifiedit.net vor 2 StundenSicherheit

Blackberry wird zu einer 08/15 Firma und geht wohl mehr und mehr den Weg, den HTC schon ging. Von ...

Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 108 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless11 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...