0

こんにちは私はファイル内の特定の文字列を検索しようとしていますが、その文字列をバッチファイル内の他の文字列に置き換えたいと思います。

たとえば、次のデータを含むa.txtがあります。

line 1: Name: abc
line 2: Some words then age: 24 something
line 3: country:xyz

今、私は「年齢:」で見つけたいと思っています

line 2: Some words then age: 30 something

同じa.txtに保存します。

手伝ってくれてありがとう

4

1 に答える 1

0

age: (whatever)これにより、text.inf内のすべてのインスタンスが次のように置き換えられage: 30ます。

for /f "tokens=1* delims=: " %%x in (text.inf) do (
  if "%%x"=="age" (
    echo %%x: 30 >> outfile.tmp
  ) else (
    echo %%x: %%y >> outfile.tmp
  )
)
move /y outfile.tmp text.inf

OK、あなたの新しいスペックはこれをより難しくします、しかし...

setlocal enabledelayedexpansion
set line=
for /f "tokens=* delims= " %%x in (text.inf) do call :workit %%x
move /y outfile.tmp text.inf
endlocal
goto :eof

:workit
set line=
  :workitloop
  set line=!line! %1
  if "%1"=="age:" (
    set line=!line! 30
    shift
    shift
    goto :workitloop
  ) else if "%1"=="" (
    echo !line:~1!>> outfile.tmp
  ) else (
    shift
    goto :workitloop
  )
goto :eof
于 2012-09-04T21:00:20.483 に答える