2013-12-21 55 views
0
setlocal EnableDelayedExpansion 
for /L %%g in (1,1,100) do (
    set /a c=%%g+1 
    echo !c! 
    echo c:\cygwin\bin\sed.exe -e 's/Token="%%g"/Token="!c!"/g' xyz.xml > xxx_!c!.xml 
) 
pause 

我想在xml文件中用Token =「n + 1」替換Token =「n」。上述腳本不起作用。 有什麼幫助嗎?批處理文件替換使用sed內部for循環行不起作用

+0

您能描述最終結果你的.bat呢?我猜測它與'!!!''沒有正確擴展有關,但很難說。 –

回答

1
setlocal EnableDelayedExpansion 
(
for /L %%g in (100,-1,1) do (
    set /a c=%%g+1 
    echo !c! >con: 
    echo s/Token="%%g"/Token="!c!"/g 
) 
)>xxx.sed 
c:\cygwin\bin\sed.exe -f xxx.sed xyz.xml > xxx.xml 

應該會看到你的。我不熟悉cygwin/sed語法;創建的文件xxx.sed應包含適當的SED指令以進行更改(對於n = 1到100,用[Token =「n + 1」]替換[Token =「n」])