Board logo

标题: [求助]批处理以一定规则批量重命名HTML文件 [打印本页]

作者: w1314ich     时间: 2009-2-4 11:05    标题: [求助]批处理以一定规则批量重命名HTML文件

有一批HTML文件需要重命名,命名的规则是:读取HTML内容中的
<title>aaa</title>中的aaa,然后以aaa命名此HTML文件,应该如何实现
作者: w1314ich     时间: 2009-2-4 13:35
自己顶下~~~~~~~~~~
作者: yishanju     时间: 2009-2-4 15:21
for findstr 切分截取处理字符串,然后ren 重命名
作者: w1314ich     时间: 2009-2-4 15:25
能详细点吗 大哥
作者: yishanju     时间: 2009-2-4 15:34


  Quote:
Originally posted by w1314ich at 2009-2-4 15:25:
能详细点吗 大哥

这话我也想对你说

你敢把HTML 文件的内容贴一份上来么
作者: BaseCoder     时间: 2009-2-4 16:02

@echo off
for /f "delims=" %%a in ('dir/b *.html') do (
for /f "delims=<> tokens=2" %%i in  ('findstr /i "<title>.*</title>" %%a') do (
ren "%%a" "%%i.html"
)
)
pause

作者: zhengqian529     时间: 2009-2-4 17:38
如果<title></title>之间的标题里面包含<>字符呢? 楼上的可以修改一下吗?
作者: zhengqian529     时间: 2009-2-4 18:24
@echo off
Setlocal EnableDelayedExpansion

for /f "delims=" %%a in ('dir /b *.htm') do (
    if exist "%%a" (
        for /f %%b in ('findstr /i "\<title\>.*\<\/title\>" %%a') do (
            set var=%%b
            ren "%%a" "!var:~7,-8!.htm"         
        )
    )
)
Endlocal
pause
作者: zhengqian529     时间: 2009-2-4 18:32
上面代码有一点不好,刚才看了一下就是如果有空格,就会有问题,代码改为:
@echo off
Setlocal EnableDelayedExpansion

for /f "delims=" %%a in ('dir /b *.htm') do (
    if exist "%%a" (
        for /f “delims=” %%b in ('findstr /i "\<title\>.*\<\/title\>" %%a') do (
            set var=%%b
            ren "%%a" "!var:~7,-8!.htm"         
        )
    )
)
Endlocal
pause