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
GELÖST

Per Batch erste Zeile aus TXT-Datei auslesen, in Variable speichern und dann vergleichen

Frage Entwicklung Batch & Shell

Mitglied: mjay-core

mjay-core (Level 1) - Jetzt verbinden

22.05.2011 um 00:12 Uhr, 21832 Aufrufe, 5 Kommentare

Hallo Leute,
in einer TXT-Datei steht folgendes:
01.
38671360 
02.
 
Mit Leerzeichen nach dem Wert und neuer Zeile. Das interessiert mich jedoch nicht.

Ich möchte diesen Wert gerne einlesen, als Variable speichern und dann mit dem Inhalt einer anderen Variable vergleichen (größer als).
Das ganze soll dann in einer Batch-Datei ausführbar sein.

Ich versuche das jetzt schon ne Weile aber scheitere spätestens am Vergleich.
Wird das vielleicht als String und nicht als Int etc. eingelesen?

Danke für eure Hilfe.
Grüße
Mitglied: 60730
22.05.2011 um 00:38 Uhr
moin,

  • wie sehen denn deine bisherigen Versuche aus?

Gruß
Bitte warten ..
Mitglied: Friemler
22.05.2011 um 01:15 Uhr
Hallo mjay-core,

Batchscript arbeitet fast rein textorientiert, Ausnahme ist nur der Befehl SET mit dem Parameter /A, damit lassen sich Berechnungen durchführen.

Da hinter dem Wert noch ein Leerzeichen in der Textdatei steht, nimm am besten sowas wie im folgenden:
for /f "usebackq" %%v in ("DeineDatei.txt") do set "Variable=%%v"
Zum Verständnis verweise ich auf mein Tutorial zur FOR-Schleife.

Zum Thema Vergleich: IF /?

Gruß
Friemler
Bitte warten ..
Mitglied: QaMarath
22.05.2011 um 02:29 Uhr
Morgen,
also wenn du sagst das du aus einer datei nur die erste zeile auslesen willst,
würde ich das mit

set /p Wert=<Datei

lösen. Das /P muss da hin weil der user dadurch normalerweise zur eingabe aufgefordert wird,
in diesem Fall wird einfach die erste Zeile der Datei genutzt.
(Die Datei muss im selben Ordner wie deine Batch liegen, sonst musst du den gesamten Pfad angeben
was mit %Userprofile% oder anderen Umgebungsvariablen am besten geht.)

Das Leerzeichen nach dem Wert, entfernst du indem du die Variable %Wert%, die du oben erstellt hast,
noch einmal mit

set /a Wert=%Wert%

umwandelst, denn /A wird nur zum Rechnen oder sonstigem Zahlen-Kram benutzt. Sprich das Leerzeichen wird unwichtig und einfach entfernt.

Angenommen du willst den nun eingelesenen Wert mit der Zahl 10 vergleichen, bietet sich if /... an.
Es gibt da 6 besondere Operatoren, habs mal aus der cmd.exe kopiert:

EQU - gleich
NEQ - nicht gleich
LSS - kleiner als
LEQ - kleiner als ODER gleich
GTR - größer als
GEQ - größer als ODER gleich

Dann die ganz normale Form:

IF "%Wert%" LSS "10" @echo %Wert% ist kleiner als 10.

Für LSS kannst du nun jeden anderen Operator einsetzen.


Viel Spaß noch beim Vergleichen, ich hoffe ich konnte dir helfen!

QaMarath
Bitte warten ..
Mitglied: QaMarath
22.05.2011 um 02:33 Uhr
Ich bins noch mal,
sorry hatte nicht gesehen, das du in der Beschreibung schon "größer-als" gesagt hattest.

Also würden sich GTR bzw. GEQ anbieten. =)

QaMarath
Bitte warten ..
Mitglied: mjay-core
22.05.2011 um 08:37 Uhr
Ich danke euch für eure schnelle und gute Hilfe.
Besonders QaMarath hat es sehr gut und ausführlich beschrieben.
Meine Versuche waren richtig. Der Fehler war die Umwandlung der Werte damit verglichen werden kann.

Das hats gebracht:
set /a Wert=%Wert%

Jetzt klappt das was ich vor hatte. Vielen Dank!
Grüße
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable aus ini Datei auslesen und weiterverwenden (17)

Frage von n0cturne zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...