标题: [已解决]批处理调用sed替换为何失败? [打印本页]
作者: wal516 时间: 2011-5-21 18:08 标题: [已解决]批处理调用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 :eof
复制代码
这个批中,哪里错了,为什么不能替换?
而把上述代码中if句改成如下:- 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 |