Adicione numeração sequencial em arquivos HTML [closed]

1

Eu tenho muitos arquivos HTML e de imagem. Os arquivos HTML são nomeados como page1.html, page2.html, page3.html etc. As imagens são nomeadas da mesma maneira image1.jpg, image2.jpg, image3.jpg etc. Cada arquivo HTML tem um link para um arquivo de imagem

<img src="image.jpg" alt="">

e este link deve apontar para o arquivo de imagem com o mesmo número que o arquivo HTML. Como posso adicionar numeração sequencial a arquivos HTML para que, a partir de page1.html, haja um link para image1.jpg e assim por diante? Existe algum programa (para Windows) ou posso usar a linha de comando?

    
por nqw1 14.12.2017 / 11:28

3 respostas

1

O Powershell é uma ótima solução para isso.

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

}
    
por 14.12.2017 / 17:36
0

É improvável que você encontre software que possa fazer isso, pois é algo muito específico. Você pode criar um script PowerShell personalizado para fazer isso, mas não será muito fácil se você não estiver acostumado a PowerShell

Acho que a melhor opção é separar o HTML e as imagens em pastas chamadas XXXX1, XXXX2 e dentro de cada pasta basta ter o arquivo HTML sem números e a imagem sem números.

    
por 14.12.2017 / 11:33
0

Eu sei que você marcou a pergunta batch , mas você também marcou automation , então ...

Se você tiver acesso a ferramentas GNU / Unix (incluindo o subsistema Windows para Linux ou Linux Subsystem no Windows (ou o que quer que seja chamado), Bash no Ubuntu no Windows, Cygwin, etc.) você pode fazer isso com bastante facilidade: Defina dir como o nome do diretório onde os arquivos estão (pode ser "." ) e executar

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

Isso examina todos os arquivos no diretório cujos nomes começam com page e terminam com .html , extrai tudo o que fica entre (que deve ser o número do arquivo), e edita o elemento <img> para alterar o nome do arquivo da imagem.

    
por 15.12.2017 / 02:47