Question Ajouter une ligne en tête de fichiers textes
- WOLFFER
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 13 ans 11 mois #11398
par WOLFFER
Ajouter une ligne en tête de fichiers textes a été créé par WOLFFER
Bonjour à tous
Je dois dans une multitude de répertoires ajouter une première ligne à tous les fichiers d'extension .txt et .vid. La ligne à ajouter est constituée d'informations contenu dans le fichier traité. Un bout de code vaut mieu que de grand discours voilà le code écrit .
Get-ChildItem -Recurse -Include *.txt, *.vid | Select-String -Pattern \"Liste des états\" -Encoding utf7 | ForEach{
$File = Get-Content -Path $_.path
$Ajout = $_.Line.Replace(\"Liste des états\", \"Période\") + \"`n\"
$File1 = $Ajout + $File
#$File1 = \"$Ajout $File\"
$chemin = $_.path + 1
#$File > $chemin
#Out-File $File -FilePath $chemin -Force
Set-Content $File -Path $chemin
#${$_.path} = $Ajout + \"` n \"+ ${$_}
}
Je sèche sur plusieurs soucis.
1 - j'ai pas réussi à écrire dans le même fichier, d'ou la variable $chemin ? Un message indique que le fichier est déjà ouvert je pense que c'est le Get-content. Comment libérer le fichier dés que $File est remplie de son contenu ?
2 - Plus grave, le fichier généré (par une des 3 solutions essayées, out-file, Set-Content, ...) n'a plus la même structure que le fichier d'origine, il a perdu tous ces retours à la ligne ?
$File est bien structuré (avec ces sauts de ligne), la concaténation de $Ajout et de $File provoque la perte des sauts de ligne ?
Par contre si on les concatène dans l'autre sens, à savoir $File + $Ajout, dans ce cas $File1 est bien structuré, on retrouve tous les sauts de lignes ?
3 - Pourquoi dans le select-string je suis obligé d'ajouter en -encoding utf7 pour pouvoir rechercher des chaînes avec des caractères accentués ?
Dans le même ordire d'idée l'opérateur -replace ne fonctionne pas avec des caractères accentuée. J'ai été obligé de passer par la méthode .replace ? quelque chose m'échappe....
Par avance merci de vos lumières
Je dois dans une multitude de répertoires ajouter une première ligne à tous les fichiers d'extension .txt et .vid. La ligne à ajouter est constituée d'informations contenu dans le fichier traité. Un bout de code vaut mieu que de grand discours voilà le code écrit .
Get-ChildItem -Recurse -Include *.txt, *.vid | Select-String -Pattern \"Liste des états\" -Encoding utf7 | ForEach{
$File = Get-Content -Path $_.path
$Ajout = $_.Line.Replace(\"Liste des états\", \"Période\") + \"`n\"
$File1 = $Ajout + $File
#$File1 = \"$Ajout $File\"
$chemin = $_.path + 1
#$File > $chemin
#Out-File $File -FilePath $chemin -Force
Set-Content $File -Path $chemin
#${$_.path} = $Ajout + \"` n \"+ ${$_}
}
Je sèche sur plusieurs soucis.
1 - j'ai pas réussi à écrire dans le même fichier, d'ou la variable $chemin ? Un message indique que le fichier est déjà ouvert je pense que c'est le Get-content. Comment libérer le fichier dés que $File est remplie de son contenu ?
2 - Plus grave, le fichier généré (par une des 3 solutions essayées, out-file, Set-Content, ...) n'a plus la même structure que le fichier d'origine, il a perdu tous ces retours à la ligne ?
$File est bien structuré (avec ces sauts de ligne), la concaténation de $Ajout et de $File provoque la perte des sauts de ligne ?
Par contre si on les concatène dans l'autre sens, à savoir $File + $Ajout, dans ce cas $File1 est bien structuré, on retrouve tous les sauts de lignes ?
3 - Pourquoi dans le select-string je suis obligé d'ajouter en -encoding utf7 pour pouvoir rechercher des chaînes avec des caractères accentués ?
Dans le même ordire d'idée l'opérateur -replace ne fonctionne pas avec des caractères accentuée. J'ai été obligé de passer par la méthode .replace ? quelque chose m'échappe....
Par avance merci de vos lumières
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.038 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Ajouter une ligne en tête de fichiers textes