Board logo

标题: [文件操作] BAT如何实现网页文件批量重命名? [打印本页]

作者: wenlishasha    时间: 2013-9-10 03:49     标题: BAT如何实现网页文件批量重命名?

我有一堆网页文件,约为8万个,格式为*.mht,想以网页的标题重命名这些文件,但标题中含有不可以作为文件名的双竖线||。求高手帮忙写个批处理。

谢谢!!
作者: Batcher    时间: 2013-9-10 08:16

请把其中一个mht文件压缩,传上来。
作者: batman    时间: 2013-9-10 08:37

请先测试,成功后再使用代码,注意备份
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr /i "<title>" *.mht') do (
  3.   for /f "tokens=2 delims=<>" %%c in ("%%b") do (
  4.     set "str=%%c"
  5.     ren "%%a" "!str:|=!.mht"
  6.   )
  7. )
  8. pause>nul
复制代码

作者: wenlishasha    时间: 2013-9-10 08:41

回复 3# batman


    楼主,您好!非常感谢您的帮忙!
我把/i 改为了我的.mht文件所在路径,但运行时提示“FINDSTR: 无法打开 <title>
”。请问应该怎么修改?
作者: wenlishasha    时间: 2013-9-10 08:44

回复 2# Batcher


    传不上来,文件过大(56k)
作者: wenlishasha    时间: 2013-9-10 08:51

回复 3# batman


    直接运行的话,没什么反应!
作者: batman    时间: 2013-9-10 09:02

本帖最后由 batman 于 2013-9-10 09:03 编辑

批和mht文件放一个文件夹中 /i是findstr的参数,指忽略要搜索的字符串的大小写
作者: wenlishasha    时间: 2013-9-10 09:05

回复 7# batman


    放在一个文件夹运行了,好像一直在运行,cmd窗口的短横线一直在闪,文件名没改变
作者: batman    时间: 2013-9-10 09:08

我要你先测试,你搞一个临时文件夹,复制几个文件进去,再把批放进去运行看看,我晕。。。
作者: Batcher    时间: 2013-9-10 09:10

回复 5# wenlishasha


    压缩之后也没有一个可以上传的?
作者: wenlishasha    时间: 2013-9-10 09:19

回复 10# Batcher


    试了好几个了,压缩后都超过50k了
作者: batman    时间: 2013-9-10 09:20

把title这一部分源码复制上来
作者: wenlishasha    时间: 2013-9-10 09:24

回复 9# batman


    您好!是放在同一个文件夹的
作者: wenlishasha    时间: 2013-9-10 09:25

截图时闪烁的光标没截出来
作者: wenlishasha    时间: 2013-9-10 09:30

回复 12# batman


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
        云南植物||尖齿系  Ser. Parviflorae Pojark.详细内容
</title>><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /><meta name="keywords" content="
作者: batman    时间: 2013-9-10 09:36

本帖最后由 batman 于 2013-9-10 09:41 编辑

我就知道是标题没有和tilte标签在一行这个原因。。
你在看看整个mht文件中是不是只有标题的这一行有“|”字符,如果是:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr "|" *.mht') do (
  3.   set "str=%%b"
  4.   ren "%%a" "!str:|=!.mht"
  5. )
  6. pause
复制代码

作者: wenlishasha    时间: 2013-9-10 09:38

回复 16# batman


    应该怎么解决呢,麻烦版主!
作者: batman    时间: 2013-9-10 09:42

回复 17# wenlishasha


    看16楼
作者: wenlishasha    时间: 2013-9-10 10:06

回复 16# batman


    有五六个|的,标题栏和网页内容第一行都有。
运行后提示“请按任意键继续”,按了任意键后就退出了
作者: Batcher    时间: 2013-9-10 10:17

回复 11# wenlishasha


    按照大小排序,选择最小的那个进行压缩。
作者: wenlishasha    时间: 2013-9-10 10:22

回复 20# Batcher


    我就是这么做的,很小的没有标题
作者: batman    时间: 2013-9-10 10:31

你还是想办法把文件传一个上来吧
作者: wenlishasha    时间: 2013-9-10 10:42

回复 22# batman


    分卷压缩了,O(∩_∩)O谢谢
作者: Batcher    时间: 2013-9-10 10:51

回复 23# wenlishasha


    另外一个方法是,上传到自己的网盘里面。
作者: batman    时间: 2013-9-10 16:32

居然源码是用base64加密的。。。
作者: wenlishasha    时间: 2013-9-11 21:01

回复 25# batman


    加密的??~~~~(>_<)~~~~
作者: wenlishasha    时间: 2013-9-12 08:44

回复 25# batman


    是不是没有办法了啊?
作者: cjiabing    时间: 2013-9-12 10:13

回复 27# wenlishasha


    稍安勿躁,base64批可以解密。
作者: wenlishasha    时间: 2013-9-12 14:38

回复 28# cjiabing


    非常感谢!!!




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