标题: [文本处理] [已解决]如何提取html特定链接代码,用title名称重命名以链接文件名存储的文件? [打印本页]
作者: YY2020 时间: 2020-11-14 20:29 标题: [已解决]如何提取html特定链接代码,用title名称重命名以链接文件名存储的文件?
现状:
1、文件结构:某文件夹中有2个子文件夹,一个是html文件夹,该文件夹中有N个html文件;另一个是jpg文件夹,该文件夹有N个子文件夹,形如dir1,dir2...dirN,每个dir里有不定数量的jpg文件(文件名以字母或数字命名)。
2、html代码:每个html包含特定的2行代码,形如<title>样例</title>和<src="../jpg/DirN/sample.jpg">。
3、html文件与jpg文件的关系。html中<src="../jpg/DirN/sample.jpg">的sample.jpg已存储在jpg/DirN文件夹中。
需求:
查找所有html文件,提取每个html中的<title>样例</title>及<src="../jpg/DirN/sample.jpg">,将以sample.jpg命名对应保存在jpg/DirN文件夹中的sample.jpg文件重命名为样例.jpg。
作者: ivor 时间: 2020-11-15 12:03
- #&cls&@powershell "Get-Content '%~0' | Out-String | Invoke-Expression" & pause&exit
-
- dir -Recurse *.html | %{
- $title = [Regex]::Match((gc $_),"(?<=<title>).*(?=</title>)")
- $img = [Regex]::Match((gc $_),"(?<=src="").*(?=\"")")
- $title = $title.Value
- $img = $img.Value.Substring(1)
- $ext = "."+$img.Split(".")[2]
- Rename-Item -Path $img -NewName $title$ext -Verbose
- }
复制代码
作者: YY2020 时间: 2020-11-15 13:26
回复 2# ivor
感谢ivor!代码运行时,出现错误,如图:
麻烦再看下是哪里出了问题。
作者: ivor 时间: 2020-11-15 13:56
本帖最后由 ivor 于 2020-11-15 13:58 编辑
脚本命名为1.bat,保存位置:html文件夹、jpg、1.bat- │ 1.bat
- │
- ├─html
- │ 1.html
- │ N.html
- │ 此目录下有N个不规则以英文或数字命名的Html文件
- │
- └─jpg
- │ 此文件夹下有N个不规则以英文或数字命名的子文件夹
- │
- ├─Dir1
- │ test.jpg
- │
- └─DirN
- sample.jpg
复制代码
作者: YY2020 时间: 2020-11-15 14:11
回复 4# ivor
照您的方法试了,执行后显示“请按任意键继续. . .”,查看JPG文件夹中的文件名,没有变化,还是原文件名。
作者: YY2020 时间: 2020-11-15 16:51
感谢ivor大神提供的代码,问题已解决。
谢谢各位关注及参与。分享代码:
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0'))" &pause&exit
dir -Recurse -Filter *.html | %{
$title = [Regex]::Match((gc $_.FullName),"(?<=<title>).*(?=</title>)")
$img = [Regex]::Match((gc $_.FullName),"(?<=src="").*(?=\"")")
$title = $title.Value
$img = $img.Value.Substring(1)
$ext = "."+$img.Split(".")[2]
Rename-Item -Path $img -NewName $title$ext -Verbose
}
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |