テキストファイルの数の特定の行を変更したいので、次のようにバッチファイルを作成しました。
@echo off
set n=0
set n1=10
set n2=40
cd.>output.txt
for /f "delims=" %%i in ('findstr /n .* test.txt') do (
set "var=%%i"
setlocal enabledelayedexpansion
set /a n=!n!+1
echo.!n!
set var=!var:*:=!
rem if !n!=%n1% ...
rem if !n!=%n2% ...
(echo.!var!)>>output.txt
endlocal
)
start output.txt
ただし、これは期待どおりに機能しません。いくつかのテストの後、拡張は通常遅れることはない
と思います。通常、拡張が遅れる!n!
ので、これは非常に奇妙です。!var!
ちなみに、setlocal enabledelayedexpansion
andendlocal
コマンドはfor
ループに入れられます。そうしないと、特殊文字!
が破棄されるためです。