|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 | 
| 『楼 主』:
 以HTM文件中的title部分批量重命名文件(未完美解决)
 
使用 LLM 解释/回答一下 
 
 
当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 能否实现开方 "
 
会不会是斜杠"/"引起的,有什么办法解决
 
代码来源于:
http://www.cn-dos.net/forum/viewthread.php?tid=29064&fpage=1&highlight=htm 
 Last edited by su2353 on 2007-11-29 at 01:50 PM ]
 
 
 
 |  | 
|  2007-11-27 16:22 |  | 
|  | 
 
| ThinKing 中级用户
 
    
 
 
 
 积分 471
 发帖 207
 注册 2007-5-3
 状态 离线
 |  | 
|  2007-11-27 17:07 |  | 
|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 | 
| 『第 3 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by ThinKing at 2007-11-27 17:07:可以,搜索一下论坛吧,貌似有类似的讨论。
 
请问要用什么关键字搜 
 
 
 
 |  | 
|  2007-11-27 17:11 |  | 
|  | 
 
| ThinKing 中级用户
 
    
 
 
 
 积分 471
 发帖 207
 注册 2007-5-3
 状态 离线
 |  | 
|  2007-11-27 17:14 |  | 
|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 | 
| 『第 5 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by ThinKing at 2007-11-27 17:14:“html”、“替换”、“批量”……
 
thanks
 
用HTML找到 
 
 
 
 |  | 
|  2007-11-27 17:30 |  | 
|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 |  | 
|  2007-11-29 13:37 |  | 
|  | 
 
| lxmxn 版主
 
         
 
 
 积分 11386
 发帖 4938
 注册 2006-7-23
 状态 离线
 | 
| 『第 7 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
因为windows文件名命名规则里面不允许文件名含有"/",所以重命名失败,可以重命名之前替换/为其它的字符。 
 
 
 
 |  | 
|  2007-11-29 14:00 |  | 
|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by lxmxn at 2007-11-29 14:00:因为windows文件名命名规则里面不允许文件名含有"/",所以重命名失败,可以重命名之前替换/为其它的字符。
 
那能批量替换 /比如替换成某个字母如 "l" 
 
 
 
 |  | 
|  2007-11-29 14:05 |  | 
|  | 
 
| lxmxn 版主
 
         
 
 
 积分 11386
 发帖 4938
 注册 2006-7-23
 状态 离线
 | 
| 『第 9 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
命令行试试这个: set string=/bin/userecho %string:/=#%p
 
 
 
 |  | 
|  2007-11-29 14:28 |  | 
|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 | 
| 『第 10 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
我是这样试的,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
 系统找不到指定的路径。
 
 
 
 
 |  | 
|  2007-11-29 14:35 |  | 
|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 |  | 
|  2007-11-29 14:37 |  | 
|  | 
 
| lxmxn 版主
 
         
 
 
 积分 11386
 发帖 4938
 注册 2006-7-23
 状态 离线
 | 
| 『第 12 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
试试下面这个,局限性太大了,要求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"
 )
 
 
 
 
 |  | 
|  2007-11-29 15:14 |  | 
|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 | 
| 『第 13 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Originally posted by lxmxn at 2007-11-29 15:14:试试下面这个,局限性太大了,要求html文件的title标签独处一行:
 @echo off&Setlocal EnableDelayedExpansion
 for /f "tokens=1,2,4 delims=<>:" %%a in ...
 
谢谢,不愧是版主 
 
 
 
 |  | 
|  2007-11-29 20:19 |  | 
|  | 
 
| su2353 初级用户
 
   
 
 
 
 积分 152
 发帖 63
 注册 2005-8-18
 状态 离线
 | 
| 『第 14 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
set string=!string:/=#!
 虽然问题解决,但上面那个是什么意思
 
 告特别是那个冒号":"是什么意思
 
 
 
 
 |  | 
|  2007-11-29 20:33 |  | 
|  | 
 
| lxmxn 版主
 
         
 
 
 积分 11386
 发帖 4938
 注册 2006-7-23
 状态 离线
 |  | 
|  2007-11-29 23:55 |  |