Question Ajout d'un caractère en fin de ligne

Plus d'informations
il y a 16 ans 4 mois #5678 par Seals
Bonjour,

J'exécute un script qui recherche dans un fichier (get-content) des valeurs. j'aimerai rajouter un caractère à chaque fin de ligne. Quel est le bon paramètre avec la méthode[code:1]-Replace (\"?\",\"x\"«»)[/code:1]

Merci.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 4 mois #5683 par steph_d
Salut
[code:1]Replace(\"`r`n\",\"x`r`n\"«»)[/code:1]

Stephane

@+ Steph

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 3 mois #5700 par Seals
Merci Stéphane,
Chez moi ca ne fonctionne pas vraiement, le fichier .txt doit il être codé d'une certaine facons ?

Merci.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 3 mois #5701 par Laurent Dardenne
Salut,
Seals écrit:

le fichier .txt doit il être codé d'une certaine facons ?

Au format Windows Cr-Lf(`r`n), ce qui n'est pas le cas pour les fichiers générés sous Unix par exemple, par défaut Cr(`r) uniquement. Sinon l'application l'ayant générée peut utiliser une convention différente de celle de Windows.
Il faut s'en assurer avec un éditeur de texte Hexa, voir avec debug.exe.
Ensuite concernant Get-Content cela peut dépendre de ton approche, ligne par ligne ou sur un tableau de lignes, et si je ne me trompe l'opérateur -Replace est encapsulé une regex.
Essaie avec la méthode replace du type String, mais le mieux serait d'avoir un fichier exemple de 4-5 lignes.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 3 mois #5705 par Arnaud Petitjean
Hello !

Une façon de faire serait de lire ligne par ligne ton fichier en utilisant le paramètre -encoding avec la valeur byte de la commande Get-Content. Ensuite tu localises les octets signifiant un retour chariot CR LF (valeurs 13 et 10) puis tu insères juste avant le caractère de fin de ligne de ton choix. Et enfin tu écris ta ligne modifiée dans un autre fichier.

Je sais pas si je suis très clair :whistle:. Si toutefois tu avais notre livre, tout est expliqué dans le chapitre 3 partie 4 - La gestion de fichiers.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 3 mois #5707 par Seals
Hello,

Je viens de lire mon fichier en Hexa.
J'ai bien les valeur 0x0D 0x0A à la fin de mon fichier.
Ce que j'ai également testé est qu'avec la methode [code:1]$file = $file -Replace (\"q\", \"X`r`n\"«»)[/code:1]
je me retrouve bien avec chaque retour à la ligne de q remplacer par X.
Par contre dès que je spécifie [code:1]-Replace (\"`r`n\", \"X`r`n\"«»)[/code:1] il ne comprends pas le string de recherche (je pense) - du coup, il ne modifie pas la sortie.

J'ai également essayé de mettre entre simple côte [code:1]-Replace (\"'`r'`n\", \"X`r`n\"«»)[/code:1] pour lui demender de garder la chaine exacte, mais fonctione pas non plus.

Pour le fichier d'expemple, il est simple, c'est .txt comportant des noms de personne que je dois insérés entre côte \"\" du type :

4681 XXX Dupont Marcel
4646 XXX Wagner Thierry
3584 XXX Thilly Beertrand

pour donner ceci :

4681 \"XXX Dupont Marcel\"
4646 \"XXX Wagner Thierry\"
3584 \"XXX Thilly Beertrand\"

Merci.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.053 secondes
Propulsé par Kunena