[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]如何提取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

回复 2# ivor

感谢ivor!代码运行时,出现错误,如图:

麻烦再看下是哪里出了问题。

TOP

回复 4# ivor

照您的方法试了,执行后显示“请按任意键继续. . .”,查看JPG文件夹中的文件名,没有变化,还是原文件名。

TOP

感谢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
}

TOP

返回列表