文字列の一部を他の文字列に置き換えたいと思います。しかし、私はこの文字列が何であるか分からない。だから私はこのための変数を使用したいと思います:文字列をバッチで変数に置き換えます。
for /r %%i in (\file\tmp\*) do (
call :createJob %%i
)
goto :eof
:createJob
SETLOCAL
set filename=%1
for /F "delims=" %%i in (%filename%) do (
set "line=%%i"
)
call :addId "%line%"
ENDLOCAL
goto :eof
:addId
@setlocal enableextensions enabledelayedexpansion
set string=%~1
set /A "i=0"
echo %string%
for %%a in (%string%) do (
if !i! EQU 1 (
set id=;%%a;
call set result=%string:!id!=;HELLO;%
)
echo %%a
set /A "i+=1"
)
echo %result%
ENDLOCAL
goto :eof
:eof
私は基本的なCSVファイルを読んでいます。関数addIdでは、"call set result =%string:!id!=; HELLO;%"という行は機能しません。文字列はまだ同じです。どうすればこの問題を解決できますか?
なぜあなたはid変数にFOR変数を設定していますか?それをする必要はありません。あなたはこれをすることができるはずです: 'set result =!string:; %% a; =; HELLO;!' – Squashman
それはうまくいかなかったからです。 –
それは動作します。もう一回やってみよう。 – Squashman