使用for循环内部的sed替换行的批处理文件不起作用

时间:2013-12-21 01:26:35

标签: loops math batch-file for-loop sed

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”。上面的脚本不起作用。 有什么帮助吗?

1 个答案:

答案 0 :(得分: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”])