我有一堆 HTML 和图像文件。HTML 文件的名称为 page1.html、page2.html、page3.html 等。图像的命名方式相同,为 image1.jpg、image2.jpg、image3.jpg 等。每个 HTML 文件都有一个指向图像文件的链接。
<img src="image.jpg" alt="">
此链接应指向与 HTML 文件编号相同的图像文件。如何为 HTML 文件添加连续编号,以便从 page1.html 链接到 image1.jpg 等等?是否有某个程序(适用于 Windows)或者我可以使用命令行?
答案1
Powershell 是解决此问题的绝佳解决方案。
Set-Location "C:\htmlfiles"
# for each html file
gci *.html | % {
# select the number from the filename
$number = $_.BaseName -replace '\D+(\d+)','$1'
# prepare the new image file name
$newImageName = 'image' + $number + '.jpg'
# get the content of the html file and replace the old image name with the new name
(gc $_).Replace('image.jpg',$newImageName) | sc $_
}
答案2
你不太可能找到可以做到这一点的软件,因为这是非常具体的事情。你可以创建一个自定义PowerShell
脚本来执行此操作,但如果你不习惯,这并不容易PowerShell
我认为最好的选择是将 HTML 和图像分开放在名为 XXXX1、XXXX2 的文件夹中,并且每个文件夹内只有不带数字的 HTML 文件和不带数字的图像。
答案3
我知道你标记了这个问题批,但你也标记了它自动化, 所以 ...
如果你有 GNU/Unix 工具(包括 Windows Subsystem for Linux 或 Windows 上的 Linux Subsystem(或任何名称)、Windows 上的 Ubuntu 上的 Bash、Cygwin 等),你可以相当轻松地完成此操作:设置dir
为文件所在目录的名称(可以是),然后执行"."
for file in "$dir"/page*.html
do
basename=${file%.html}
number=${basename#$dir/page}
sed -i "s/<img src=\"image.jpg\" alt=\"\">/<img src=\"image$number.jpg\" alt=\"\">/" "$file"
done
这着眼于全部目录中名称以 开头page
和以 结尾的文件.html
,提取介于其间的所有内容(应为文件编号),然后编辑元素<img>
以更改图像文件名。