Modifier le fichier CSV sous Windows

0

Est-il possible de lire le contenu de .csv et d’ajouter une autre donnée de colonne pour chaque enregistrement?

Exemple: le fichier CSV d’entrée aura le contenu suivant

Row 1 : C1 C2 C3 C4 <C5>
...........

Est-il possible de définir les données C5 avec une valeur fixe à l'aide d'un script Windows?

Ensuite, le fichier .csv doit également être enregistré avec la colonne ajoutée.

UnderDog
la source

Réponses:

1

D'après votre description, je suppose que vous avez un fichier csv auquel vous souhaitez ajouter une colonne supplémentaire et pour chaque ligne, ajouter une valeur à cette colonne.

En supposant que le fichier d'entrée soit input.csv et que la sortie soit output.csv, cette ligne dans Powershell ferait l'affaire. Il prend un fichier input.csv dans votre répertoire actuel et génère un fichier output.csv avec une colonne supplémentaire HEADER et la valeur constante VALUE.

Je l'ai divisé en plusieurs lignes pour faciliter la lecture ...

 $n=0;
 Get-Content .\input.csv |
 ForEach-Object{ If($n -eq 0){ $n=1; $_ + ",HEADER" } Else { $_+",VALUE"} } |
 Out-File output.csv

UPDATE : Pour créer un fichier bat de la commande, vous devez le préfixer avec "powershell -Command".

En résumé: vous voulez que le fichier bat contienne la ligne suivante:

powershell.exe -Command "$n=0; Get-Content .\input.csv | ForEach-Object{ If($n -eq 0){ $n=1; $_ + ',HEADER' } Else { $_+',VALUE'} } | Out-File output.csv"

LudvigH
la source
Merci. Je suis nouveau à cette powershell. Puis-je mettre les déclarations ci-dessus dans un fichier de commandes et l'appeler comme tel?
UnderDog
1
powershell $cn=gc cn.csv;$cl=gc c1.csv;$i=0;$cn^|%{$cn[$i]+','+$cl[$i];++$i}>result.csv
STTR
la source