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

Wie Leerzeichen aus Batch-For-Variable entfernen?

Mitglied: ipzipzap

ipzipzap (Level 1) - Jetzt verbinden

04.05.2011 um 14:54 Uhr, 7488 Aufrufe, 4 Kommentare

Hallo,

ich habe aus einem System ein Status-File, welches ich weiterverarbeiten möchte. Das File ist eine ASCII-Textdatei und sieht wie folgt aus:

01.
01: E: RC:OFF Z:0 V:612 V:1.05 20110301 16:44:31 
02.
02: Offline 
03.
03: E: RC:OFF Z:0 V:612 V:1.05 20110301 16:44:31 
04.
04: E: RC:OFF Z:0 V:612 V:1.05 20110301 16:44:31 
05.
05: Offline 
06.
06: Offline 
07.
07: Offline 
08.
...
Nun möchte ich eine BATCH-Datei haben, die mir den Online oder Offline Status einer ID zurückliefert. Wenn ich also z.B.

01.
STATUS.BAT 01
eintippe, soll als Ausgabe ONLINE kommen.... bei ID 02 entsprechend OFFLINE usw.... zusätzlich brauche ich als Rückgabewerte auch noch ERRORLEVEL 0 und 1.

Mit der folgenden FOR-Schleife:

01.
for /f "delims=: tokens=1,2" %%i in ('findstr "%1: " status.txt') do ( 
02.
echo ID    : %%i 
03.
echo Status: %%j 
04.
)
bekomme ich die richtigen Werte in zwei Variablen geliefert, nur hat die Statusvariable %j ja jetzt ein führendes Leerzeichen. Wie bekomme ich das nun am elegantesten weg?

Gruß,
Dino
Mitglied: bastla
04.05.2011 um 15:12 Uhr
Hallo ipzipzap und willkommen im Forum!

Du musst kaum etwas ändern (wenn Du nicht tatsächlich "Online" als Ausgabe erhalten willst):
01.
@echo off & setlocal 
02.
for /f "tokens=1,2 delims=: " %%i in ('findstr /c:"%1: " status.txt') do ( 
03.
    echo ID    : %%i 
04.
    echo Status: "%%j" 
05.
)
Die Anführungszeichen in Zeile 4 sind nur als Demo gedacht, und wenn du tatsächlich auch das Leerzeichen nach dem ":" suchen lassen willst (was wegen der enthaltenen Zeit-Angaben sinnvoll ist), benötigt "findstr" den Schalter "/c:" ...

Grüße
bastla
Bitte warten ..
Mitglied: ipzipzap
04.05.2011 um 15:24 Uhr
Wie war das noch mit dem Wald und den Bäumen? *g*

Ich dachte, bei "delims" kann man immer nur einzelne Zeichen angeben.

Danke, das hilft mir erstmal weiter. Ich möchte die Variablen noch weiterverarbeiten, und da kann ich das Leerzeichen nicht gebrauchen.
Die Ausgabe "Online" oder "Offline" kann ich ja jetzt noch per IF Abfragen machen.

Und das Leerzeichen nach dem ":" war gewollt, richtig



Thx
Bitte warten ..
Mitglied: ipzipzap
04.05.2011 um 15:25 Uhr
achso.... wozu ist das "setlocal" am Anfang gedacht?
Bitte warten ..
Mitglied: bastla
04.05.2011 um 18:47 Uhr
Hallo ipzipzap!
wozu ist das "setlocal" am Anfang gedacht?
Da die Weiterverarbeitung ja ohnehin schon im Raum stand : Dort wirst Du auch andere als nur Schleifen-Variablen benötigen, deren Wert aber nur in diesem Batch Bedeutung hat - genau das erreichst Du mit "setlocal": Alle danach erfolgten Änderungen an schon bestehenden und alle neu erstellten Variablen werden nach dem zugehörigen "endlocal" (wird automatisch am Ende des aktuellen Batches ausgeführt) "vergessen" ...

Ob diese "Vorsichtsmaßnahme" in diesem Fall nötig ist, kann ich zwar nicht abschätzen, aber im Zweifelsfall hast Du zumindest keine Nachteile zu erwarten, daher kannst Du "setlocal" standardmäßig am Beginn eines Batches setzen.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BAT - Leerzeichen in Variable entfernen
gelöst Frage von hoffi3dBatch & Shell5 Kommentare

Ich mal wieder. Ich lese gerade einige Dateien aus einem Verzeichniss aus und schreibe diese in eine Variable, das ...

Batch & Shell

Leerzeichen aus Zeichenfolge entfernen mit Batch FOR f Schleife

gelöst Frage von gexnerBatch & Shell2 Kommentare

Hallo! Ich möchte aus einer Zeichenfolge alle Leerstellen, egal ob vorne hinten oder in der Mitte, entfernen. In Anlehnung ...

Batch & Shell

Batch Variable setzten mit Leerzeichen

gelöst Frage von Marlon1Batch & Shell3 Kommentare

Hallo :) Ich würde gerne das man mit "set /p code= " 2 Wörter in die Variable "code" setzen ...

Batch & Shell

Leerzeichen per Batch entfernen vor der Weiterbearbeitung

gelöst Frage von daHartlBatch & Shell3 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, per Batch alle Leerzeichen in einem Dateinamen durch "-" zu ersetzten? Das Leerzeichen ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 21 StundenWindows 104 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 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 1 TagHumor (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 2 TagenGoogle 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 ...

Heiß diskutierte Inhalte
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 ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...