1

У меня есть куча файлов 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) или я могу использовать командную строку?

3 ответа3

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 $_

}
0

Я знаю, что вы отметили вопросов, но вы также отметили его , так что ...

Если у вас есть доступ к инструментам GNU/Unix (включая подсистему Windows для Linux или подсистему Linux в Windows (или как она называется), Bash в Ubuntu в Windows, 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> чтобы изменить имя файла изображения.

0

Маловероятно, что вы можете найти программное обеспечение, которое может сделать это, поскольку это что-то очень конкретное. Вы можете создать собственный сценарий PowerShell для этого, но это будет не очень легко, если вы не привыкли к PowerShell

Я думаю, что лучший вариант, который у вас есть, это разделить HTML и изображения в папках с именами XXXX1, XXXX2, и внутри каждой папки просто есть файл HTML без цифр и изображение без цифр.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .