Bonjour à tous
Je cherche aujourd'hui à comparer le contenu de deux fichiers csv, un fichier dit "ancien" (Test.csv), et un nouveau (à jour) (product.csv).
Seul la comparaison de la première colonne des deux fichiers m'interessent.
L'idée, c'est de dire:
- si contenu d'une case de Test.csv n'apparait pas dans product.csv, alors on supprime la ligne dans Test.csv
- si contenu d'une case de product.csv n'apparait pas dans Test.csv, alors il faut rajouter le case manquante dans Test.csv
Dans tous les cas, j'aimerai rajouter à la fin de chaque case de la 1ere colonne de product.csv, un identifiant (un caractère quelconque) me permettant d'identifier ce que le programme a parcouru ou pas.
Aujourd'hui, je ne parviens qu'à identifier une partie des choses: je stocke dans un autre fichier (test2.csv) les mots existant dans les deux bases (test.csv et product.csv), et ceux qui n'existent plus dans un autre fichier (test3.csv)
Voici mon bout de code:
For /F "tokens=1 delims=;" %%o in (Test.csv) do findstr "%%o" Products.csv >nul && echo [le mot %%o existe]>> test2.csv && echo [XXX]>> Products.csv || echo [le mot %%o n'existe plus]>> test3.csv
je n'arrive pas écrire à la fin de chacune des cases pour identifier les mots comparés, je n'écrit qu'à la fin du fichier à l'heure actuel.
j'ai essayé la commande
findstr /v "%%o" > Test.csv
pour supprimer une ligne, mais elle me supprime toutes les lignes de mon fichiers...
Etant débutant en batch, je m'en remets à vos conseils et compétences !
Partager