こんにちは、StackExchangeコミュニティ!バッチを使用して文字列の最初の単語を置き換える方法は?
私は行の最初の単語を他の単語に置き換える問題を解決しようとしています。変換のタイプは単語の最初の文字に依存します。
ポイントまでです。文字列が文字で始まる場合は「s」は、私が希望
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
:
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
は、私は次のようになりたい: 私は、次の形式でのログファイル(INPUT.TXT)を持っています文字 "u"で始まる場合は、部分文字列の先頭を "w1"に変更します。上記の例のように部分文字列を "w2"に変更します。第1の部分文字列は、異なる長さであってもよい。
私はここにコードを書いた次のようにこのスクリプトの(OUTPUT.TXT)がある
@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
結果を:
w1
w1
w1
w2
w1
w2
w1
変換作業が、ログからその他の情報を失います。問題はほんのわずかだと確信していますが、すでに長い間、私はそれを解決できません。助けてください!
ありがとう、ありがとうございます! – Just4Droid