Question Concatenation de fichier par ligne (RESOLU)

Plus d'informations
il y a 8 ans 11 mois #23425 par Nicolas Caron
Bonjour à tous,

J'ai créé un gros script dont je suis assez fier en guise de semi-interface pour un de mes logiciels. 95% de mon script fonctionne parfaitement (notamment grâce a ce que j'ai trouvé sur ce forum et j'en remercie au passage les contributeurs). Mais il y a un passage que je n'arrive pas à faire, je m'explique :

J'ai un fichier A et un fichier B composés de X lignes. Je voudrais créer un fichier composé d'une ligne de A, puis une ligne B et ainsi de suite, cela donnerait :

Ligne1 Fichier A
Ligne1 Fichier B
Ligne2 Fichier A
Ligne2 Fichier B
etc...

J'ai essayé beaucoup de chose, mais je me retrouve systématiquement avec l'intégralité du fichier A suivi de l'intégralité du fichier B :

$Monfichier = Import-Csv fichierA
foreach ($Line in $Monfichier) {
Get-content fichierA | Select-content -Skip 1|Add-Content fichierC
Get-content fichierB | Select-content -Skip 1|Add-Content fichierC
}

Je ne sais pas si je suis loin ou pas...J'ai trouvé beaucoup de script en mesure de lire mon fichier ligne par ligne mais rien qui me permette d'alterner l'envoi dans un fichier. Si vous pouvez m'aider sur ce point, je vous en serais super reconnaissant!

Merci

Message édité par: Niiiko77, à: 5/04/17 07:48

Message édité par: Niiiko77, à: 5/04/17 07:49<br><br>Message édité par: Niiiko77, à: 5/04/17 13:40

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

Plus d'informations
il y a 8 ans 11 mois #23428 par vianney
Essaye ça

[code:1]
$fichier1 = get-content(\&quot;.\Fichier1.txt\&quot;«»)
$fichier2 = get-content(\&quot;.\Fichier2.txt\&quot;«»)

$Count = $fichier1.count

for ($i=0; $i -le $Count; $i++){
Add-Content \&quot;.\Fichier3.txt\&quot; $fichier1[$i]
Add-Content \&quot;.\Fichier3.txt\&quot; $fichier2[$i]
}[/code:1]

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

Plus d'informations
il y a 8 ans 11 mois #23434 par Laurent Dardenne
Il faut contrôler que les collections soient de même taille, sinon il y a un risque de perte de données.

Tutoriels PowerShell

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

Plus d'informations
il y a 8 ans 11 mois #23436 par Nicolas Caron
Alors, tout d'abord, merci pour votre aide. Pas de soucis pour la longueur des fichiers, puisque il y a exactement le même nombre de ligne, et c'est même fait exprès.

Alors j'ai essayé :

$fichier1 = get-content(\&quot;.\Fichier1.txt\&quot;)
$fichier2 = get-content(\&quot;.\Fichier2.txt\&quot;)

$Count = $fichier1.count

for ($i=0; $i -le $Count; $i++){
Add-Content \&quot;Fichier3.txt\&quot; $fichier1[$i]
Add-Content \&quot;Fichier3.txt\&quot; $fichier2[$i]
}

Et il me renvoi l'erreur suivante :

Indexation impossible dans un tableau Null.
Au caractère C:\Interface - Sage\SAGE.ps1:27 : 5
+ Add-Content \&quot;Fichier3.txt\&quot; $fichier2[$i]
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray

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

Plus d'informations
il y a 8 ans 11 mois #23437 par Nicolas Caron
Désolé, j'ai trouvé mon erreur, j'ai pas respecté la casse dans le nom du fichier, sinon ça marche super!!! Merci beaucoup pour votre aide, vraiment!

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

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