online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon worm vom 03.06.2021, 17:49 Options

Zeichenfolge in Batch auslesen

Hallo zusammen

Ich möcht in einem Batch eine bestimmte Zeichenfolge aus einer Textdatei auslesen und in eine Variable speichern...

In der Textdatei steht folgende Zeile:

OBJ_Driver Software1002110_Servername

Die Zahl 1002110 entspricht der Software-Version, die Installiert ist ... und genau diese möchte ich in die Variable %_SWVersion% speichern, um sie später wieder zu verwenden.

Weiss jemand, wie ich das in einer .BAT-Datei machen kann? Unter UNIX wär's ja kein Problem, aber unter Windows hab ich keine Ahnung, wie das gehen soll.

Besten Dank schonmal im Voraus für eure Hilfe!

Gruss Rolf


Antwort schreiben

Antwort 1 von batti-batch vom 03.06.2021, 20:34 Options

Hallo Rolf,


diese Aufgabe ist mit einer Batch ganz einfach zu lösen.
Innerhalb einer FOR-Schleife mit FINDSTR nach der Zeichenfolge suchen und diese einer Variablen zuweisen.

Die Zuweisungen zu den Variablen werden wie immer im SET-Block vorgenommen.

In meinem Programm wird am Ende der Wert der Variablen auf dem Bildschirm ausgegeben. Hier könnte sich eine weitere Verarbeitung anschließen. Es ist sicher nicht verkehrt, eine Fehlerbehandlung vorzusehen, falls die Datei nicht existiert oder die Zeichenfolge nicht gefunden wird.

Hier also das Programm:

@ECHO off
SETLOCAL


REM
REM Testprogramm
REM Finden einer Zeichenfolge in einer Textdatei
REM und diese dbanschliessend einer Variable zuweisen  

REM http://www.supportnet.de/t/2238376
REM
REM (c) batti-batch 06/2009
REM
REM getestet unter Windows 2000


REM ************************ SET-Block Beginn ************************

SET "quell_datei=Laufwerk, Pfad und Name der txt-Datei"

SET "suchzeichenfolge=OBJ_Driver Software1002110_Servername"

REM ************************ SET-Block Ende **************************

REM Suchen der Zeichenfolge in der Quelldatei
FOR /f "delims=" %%i IN ('FINDSTR /i /c:"%suchzeichenfolge%" "%quell_datei%" ') DO (

	REM Gefundene Zeichenfolge 
	REM der Variable zuweisen 
	SET "_SWVersion=%%i"

)

REM Ausgabe des Variablenwertes
ECHO %_SWVersion%


Viel Spaß beim Testen.

Herzliche Grüße
batti-batch

Antwort 2 von John.Yossarian vom 03.06.2021, 23:39 Options

Hmm, der Sinn des obigen Konstrukts erschließt sich mir nicht ganz....
Das ganze könnte man schlicht abkürzen mit

SET _SWVersion = OBJ_Driver Software1002110_Servername

Was ist dabei gewonnen? Wozu die Suche, wenn der Variablen dann doch nur die schon bekannte Suchzeichenfolge zugewiesen wird?

Unter der Voraussetzung, daß die Zeile immer mit genau "OBJ_Driver Software" beginnt und danach genau 7 Zeichen für die Version kommen, dann hätte ich folgenden Vorschlag (für WinXP):
@echo off
setlocal
for /f "delims=" %%i in ('find /i "OBJ_Driver Software" "Textdatei.txt"') do set DriverVer=%%i
set DriverVer=%DriverVer:~19,7%
echo Version: %DriverVer%

John Yossarian

Ähnliche Themen

cookiewert auslesen
karim  27.11.2007 - 86 Hits - 3 Antworten

[Batch] Ermitteln, ob eine Zeichenfolge eine gültige IP-Adresse ist
ip-finder  28.08.2008 - 7 Hits - 22 Antworten

batch schreiben
Tekker  10.03.2009 - 238 Hits - 1 Antwort

FTP er Batch
bytewarrier  22.04.2009 - 311 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026