Hallo StackExchange-Community!Wie ersetzt man das erste Wort in einer Zeichenkette mit Batch?
Ich versuche, das Problem zu lösen, das erste Wort in Folge durch das andere zu ersetzen. Die Art der Konvertierung hängt vom ersten Buchstaben des Wortes ab.
Auf den Punkt. Ich habe eine Protokolldatei (input.txt) in der folgenden Form:
s272400 616264890454 23.19 14.79
s272400 616264890453 25.11 16.23
s272400 616264890452 24.12 15.73
u272400 616264890451 21.18 16.78
s272400 616264890450 24.19 12.12
u292402a 616264890449 21.18 18.98
s292402a 616264890448 20.13 15.73
Ich möchte wie folgt aussehen:
w1 616264890454 23.19 14.79
w1 616264890453 25.11 16.23
w1 616264890452 24.12 15.73
w2 616264890451 21.18 16.78
w1 616264890450 24.19 12.12
w2 616264890449 21.18 18.98
w1 616264890448 20.13 15.73
Wenn die Zeichenfolge mit dem Buchstaben beginnt „s“ Ich würde ändere den Anfang der Teilzeichenfolge auf "w1", wenn du mit dem Buchstaben "u" beginnst Ich würde die Teilzeichenfolge wie im obigen Beispiel in "w2" ändern. Die erste Teilkette kann unterschiedlich lang sein.
Ich schrieb den Code hier:
@echo off
setlocal enableextensions disabledelayedexpansion
set "Ver_1=s"
set "Ver_2=u"
set "Ver_1_res=w1"
set "Ver_2_res=w2"
for /f "delims=" %%a in (INPUT.txt) do (
set var=%%a
setlocal enabledelayedexpansion
set value_1=%Ver_1%
set value_2=%Ver_2%
set value_res_1=%Ver_1_res%
set value_res_2=%Ver_2_res%
set ProgramVersion=!var:~0,1!
if !ProgramVersion!==!value_1! (
set "var=!value_res_1!"
echo !var!
)
if !ProgramVersion!==!value_2! (
set "var=!value_res_2!"
echo !var!
)
endlocal
) >> OUTPUT.txt
pause
Das Ergebnis (output.txt) dieses Skript wird wie folgt:
w1
w1
w1
w2
w1
w2
w1
Umbauarbeiten aber verlieren andere Informationen aus dem Protokoll. Ich bin mir sicher, dass das Problem trivial ist, aber ich kann es schon lange nicht mehr lösen. Bitte helfen Sie!
Vielen Dank, vielen Dank! – Just4Droid