salut, je dois copier le lien de la ligne du haut vers les lignes du bas, dans plusieurs fichiers html. Chaque fichier html a un unique "canonical" tag link. Par example:
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <link rel="canonical" href="https://website.com/en/america.html" /> <html code> <html code> <div class="somers"><a href="https://website/darertss.html" class="flags bg" hreflang="bg" title="bk"></a> <a href="https://website.com/pas-lofet.html" class="flags sk" hreflang="sk" title="sk"></a> <a href="https://website.com/latinamer.html" class="flags uk" hreflang="uk" title="uk"></a> <a href="https://website.com/sacrdo.html" class="flags uk" hreflang="uk" title="uk"></a>
La sortie doit être
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <div class="somers"><a href="https://website.com/en/america.html" class="flags bg" hreflang="bg" title="bk"></a> <a href="https://website.com/en/america.html" class="flags sk" hreflang="sk" title="sk"></a> <a href="https://website.com/en/america.html" class="flags uk" hreflang="uk" title="uk"></a> <a href="https://website.com/america.html" class="flags uk" hreflang="uk" title="uk"></a>
Mon code PowerShell est presque bon, mais ne remplace que la première ligne (celle avec <div class..). Et je dois remplacer toutes les lignes
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $sourcedir = "C:\Folder1\" $resultsdir = "C:\Folder1\" Get-ChildItem -Path $sourcedir -Filter *.html | ForEach-Object { $content = Get-Content -Path $_.FullName -Raw $replacementValue = (Select-String -InputObject $content -Pattern '(?<=<a href=").+(?=</a>)').Matches.Value $replaceValue = (Select-String -InputObject $content -Pattern '(?<=<link rel="canonical" href=").+(?=" />)').Matches.Value $content.Replace("$replacementValue", "$replaceValue") | Out-File -FilePath $resultsdir\$($_.name) }
J'ai essayé d'entrer -AllMatches mais cela n'a pas fonctionné
Quelqu'un peut-il mettre à jour un peu mon code afin de remplacer toutes les lignes ?
Partager