Board logo

标题: [已解决]批处理调用sed替换为何失败? [打印本页]

作者: wal516    时间: 2011-5-21 18:08     标题: [已解决]批处理调用sed替换为何失败?

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

而把上述代码中if句改成如下:
  1. if "%dymz%"=="Greys.Anatomy.S07" sed -i "s/*%num1%/*%num%/" %~nx0
复制代码
却又都替换了?
作者: wal516    时间: 2011-5-26 08:22

为什么高手都不来呢?
作者: batman    时间: 2011-5-26 08:32

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

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




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2