2016-08-09 11 views
1

文字列の一部を他の文字列に置き換えたいと思います。しかし、私はこの文字列が何であるか分からない。だから私はこのための変数を使用したいと思います:文字列をバッチで変数に置き換えます。

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;%"という行は機能しません。文字列はまだ同じです。どうすればこの問題を解決できますか?

+0

なぜあなたはid変数にFOR変数を設定していますか?それをする必要はありません。あなたはこれをすることができるはずです: 'set result =!string:; %% a; =; HELLO;!' – Squashman

+0

それはうまくいかなかったからです。 –

+0

それは動作します。もう一回やってみよう。 – Squashman

答えて

3

代わりにこれを試してみてください:

また
call set result=%%string:!id!=;HELLO;%% 

を、テストこの:

set result=!string:;%%a;=;HELLO;! 
+0

それは動作します!ありがとうございました ! –

+0

ええ、私はちょうど答えを受け入れる前にさらに4分待つ必要があります! ;) –

関連する問題