Board logo

标题: 以HTM文件中的title部分批量重命名文件(未完美解决) [打印本页]

作者: su2353     时间: 2007-11-27 16:22    标题: 以HTM文件中的title部分批量重命名文件(未完美解决)
当D:\CNDOS目录下 6546.html aldfj.html adsf.html 执行以下命令: for /f "tokens=1,2,4 delims=<>:" %a in ('findstr "<title> </title>" D:\cndos\*.html') do ren "%a:%b" "%c.htm" 结果: 只有一个文件按要求改成:"(已解决)生成随机数(78),显示结果是78=2+4+8+64.HTML " 另两个失败,保持原文件名 另两个的TITLE分别是:"请教 for /l 语句中的 set /a 问题 ","for 加 set /a 能否实现开方 " 会不会是斜杠"/"引起的,有什么办法解决 代码来源于: www.cn-dos.net/forum/viewthrea ... [ Last edited by su2353 on 2007-11-29 at 01:50 PM ]

作者: ThinKing     时间: 2007-11-27 17:07
可以,搜索一下论坛吧,貌似有类似的讨论。

作者: su2353     时间: 2007-11-27 17:11
Originally posted by ThinKing at 2007-11-27 17:07: 可以,搜索一下论坛吧,貌似有类似的讨论。
请问要用什么关键字搜

作者: ThinKing     时间: 2007-11-27 17:14
“html”、“替换”、“批量”……

作者: su2353     时间: 2007-11-27 17:30
Originally posted by ThinKing at 2007-11-27 17:14: “html”、“替换”、“批量”……
thanks 用HTML找到

作者: su2353     时间: 2007-11-29 13:37
当HTM文件TITLE中有"/"号的时候重命名失败

作者: lxmxn     时间: 2007-11-29 14:00
因为windows文件名命名规则里面不允许文件名含有"/",所以重命名失败,可以重命名之前替换/为其它的字符。

作者: su2353     时间: 2007-11-29 14:05
Originally posted by lxmxn at 2007-11-29 14:00: 因为windows文件名命名规则里面不允许文件名含有"/",所以重命名失败,可以重命名之前替换/为其它的字符。
那能批量替换 /比如替换成某个字母如 "l"

作者: lxmxn     时间: 2007-11-29 14:28
命令行试试这个:
set string=/bin/user
echo %string:/=#%p

作者: su2353     时间: 2007-11-29 14:35
我是这样试的,MS不行 D:\CNdos>for /F "tokens=1,2,4 delims=<>:" %a in ('findstr "<title> </title>" D:\ cndos\*.html') do ( set string=/bin/user echo /=#p ren "%a:%b" "%c.htm" ) D:\CNdos>( set string=/bin/user echo /=#p ren "D:\cndos\001.html" "请教 for /l 语句中的 set /a 问题 .htm" ) /=#p 系统找不到指定的路径。 D:\CNdos>( set string=/bin/user echo /=#p ren "D:\cndos\002.html" "for 加 set /a 能否实现开方 .htm" ) /=#p 系统找不到指定的路径。

作者: su2353     时间: 2007-11-29 14:37
我刚接触批处理,可以说是什么都不懂,具体怎么做 完整的代码

作者: lxmxn     时间: 2007-11-29 15:14
试试下面这个,局限性太大了,要求html文件的title标签独处一行:
@echo off&Setlocal EnableDelayedExpansion

for /f "tokens=1,2,4 delims=<>:" %%a in ('findstr /i "<title>.*</title>" e:\cmd\html\*.htm') do (
    set string=%%c
    set string=!string:/=#!
    set string=!string:\=#!
    set string=!string:^|=#!
    set string=!string:?=#!    
    ren "%%a:%%b" "!string!.html"
)

作者: su2353     时间: 2007-11-29 20:19
Originally posted by lxmxn at 2007-11-29 15:14: 试试下面这个,局限性太大了,要求html文件的title标签独处一行:[code]@echo off&Setlocal EnableDelayedExpansion for /f "tokens=1,2,4 delims=<>:" %%a in ...
谢谢,不愧是版主

作者: su2353     时间: 2007-11-29 20:33
set string=!string:/=#! 虽然问题解决,但上面那个是什么意思 告特别是那个冒号":"是什么意思

作者: lxmxn     时间: 2007-11-29 23:55
www.cn-dos.net/forum/viewthrea ... 看置顶“Question10”。