Powershell - Ajouter une ligne dans un fichier à partir d'une ligne précise
Pour me soutenir, vous pouvez vous abonner à la chaîne, partager et liker les vidéos, désactiver votre bloqueur de pub ou encore faire un don. Merci!
Bonjour,
Etant passé d’un site basé sur un CMS avec base de données à un site basé sur des fichiers Markdown, j’ai eu besoin de modifier ce qu’on appelle le frontmatter.
Une section au début du fichier Markdown contenant des informations sur l’article (date, titre…).
Le plus simple, pour cette action, est d’utilisé une collection (collection, arraylist, genericlist) qui contient une méthode .insert().
Voici quelques exemples pour ajouter une ligne à un emplacement spécifique dans fichier (vous connaissez le numéro de la ligne ou vous voulez placer votre contenu texte)
## A partir d'un arraylist# Chemin des fichiers$Path = 'c:\Path_File'# Contenu à ajouter$TextToAdd = "lang: fr"# Liste lister les fichiers$Files = Get-ChildItem -path $Path -File# Boucle pour chaque fichiersforeach ( $File in $Files ) {# Charger le contenu du fichier[System.Collections.ArrayList]$FileContent1 = get-content $File.FullName# Ajout du contenu# 7 correspond à un ajout à la 8e ligne$FileContent1.Insert(7,$TextToAdd)# Modification du fichierSet-Content -Path $File.FullName -Value $FileContent1}
## A partir d'une Generic List# Chemin des fichiers$Path = 'c:\Path_File'# Contenu à ajouter$TextToAdd = "lang: en"# Liste lister les fichiers$Files = Get-ChildItem -path $Path -File# Boucle pour chaque fichiersforeach ( $File in $Files ) {# Charger le contenu du fichier[System.Collections.Generic.List[String]]$FileContent2 = get-content $File.FullName# Ajout du contenu# 7 correspond à un ajout à la 8e ligne$FileContent2.Insert(7,$TextToAdd)# Modification du fichierSet-Content -Path $File.FullName -Value $FileContent2}
## En transformant le array en collection# Chemin des fichiers$Path = 'c:\Path_File'# Contenu à ajouter$TextToAdd = "lang: es"# Liste lister les fichiers$Files = Get-ChildItem -path $Path -File# Boucle pour chaque fichiersforeach ( $File in $Files ) {# Charger le contenu du fichier$FileContent3 = get-content $File.FullName# Transformation en collection pour obtenir la méthode .Insert()$FileContent3 = {$FileContent3}.invoke()# Ajout du contenu# 7 correspond à un ajout à la 8e ligne$FileContent3.Insert(7,$TextToAdd)# Modification du fichierSet-Content -Path $File.FullName -Value $FileContent3}
Liens en relation
Powershell - Tester la connectivité réseau et l'accessibilité aux ports
Tester la connectivité réseau et l'accessibilité aux ports avec PowershellPowershell - Afficher les connections réseau (équivalent de netstat)
Afficher les connections réseau (ports en écoute, connections actives...)Powershell - Tester la résolution de nom (équivalent de nslookup)
Commandes Powershell permettant de tester la résolution de nom (équivalent de nslookup)Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Commandes Powershell permettant d'afficher et de gérer la configuration DNS des interfaces réseauPowershell - Gérer la configuration IP des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier la configuration IP des interfaces réseauPowershell - Gérer l'état et la configuration des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier l'état et la configuration des interfaces réseau (désactiver l'IPv6, activer/désactiver une interface)
Suivez-moi sur
Soutenez-moi
Contenu récent
Powershell - Tester la connectivité réseau et l'accessibilité aux ports
Powershell - Afficher les connections réseau (équivalent de netstat)
Powershell - Tester la résolution de nom (équivalent de nslookup)
Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Powershell - Gérer la configuration IP des interfaces réseau
Powershell - Gérer l'état et la configuration des interfaces réseau
Powershell et le left hand side
Powershell - Gérer les disques, les partitions et les volumes
Powershell - Gérer les points de restauration système sous Windows