返回列表 发帖

[已解决]批处理调用sed替换为何失败?

本帖最后由 wal516 于 2011-5-30 19:57 编辑
Greys.Anatomy.S07*24*实习医生格蕾丝*#*Grey's.Anatomy.7x
V.2009.S02*12*V星入侵*#*V.2009.2x
The.Event.S01*24*惊世*#*The.Event.1x
Chaos.S01*4*混沌特工*#*Chaos.1x
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1,2,3,4,5 delims=*" %%a in (%~nx0) do (
                         IF "%%d"=="#" (
                                                      set dymz=%%a
                                                       set /a num=%%b+1
                                                      set num1=%%b
                                                       set num2=0!num!
                                                     set xzhddy=%%c
                                                     set dymz2=%%e
                                                     call :dy
                                                       )
)
goto :eof
:dy
if "%dymz%"=="Greys.Anatomy.S07" sed -i "s/%dymz%*%num1%/%dymz%*%num%/" %~nx0
goto :eofCOPY
这个批中,哪里错了,为什么不能替换?

而把上述代码中if句改成如下:
if "%dymz%"=="Greys.Anatomy.S07" sed -i "s/*%num1%/*%num%/" %~nx0COPY
却又都替换了?
1

评分人数

    • batman: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 batman 于 2011-5-26 09:33 编辑

*是数量符,表示匹配前面的表达式0次或多次,如要变为普通字符用\*
***共同提高***

TOP

为什么高手都不来呢?

TOP

返回列表