你好StackExchange社区!如何用批处理替换字符串中的第一个单词?
我正试图解决替换与其他行中的第一个单词的问题。转换类型取决于单词的第一个字母。
重点。 我有以下形式的日志文件(INPUT.TXT):
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
我想是这样的:
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
如果字符串开头字母为“S”我会如果以字母“u”开头,则将子字符串的起始位置更改为“w1”。如上例所示,我会将子字符串更改为“w2”。第一个子字符串的长度可能不同。
我这里写的代码:
@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
这个脚本的结果(OUTPUT.TXT)如下:
w1
w1
w1
w2
w1
w2
w1
转换工作,但是从日志中丢失的其他信息。我相信这个问题是微不足道的,但是很长一段时间,我解决不了。请帮忙!
谢谢,非常感谢! – Just4Droid