Fichier de commandes pour comparer le contenu d'un fichier texte
J'ai deux fichiers texte qui contiennent les chiffres ci-dessous
File1
00000
11111
File2
00000
11111
22222
J'ai besoin d'un code qui compare le contenu de fichier2 à celle de fichier1 et les numéros qui ne sont pas appariés , dans ce cas, '22222' être le seul contenu dans fichier2.
En bref je veux effacer le contenu de fichier2 et de mettre le non appariés contenu dans fichier2. Ci-dessous le code que j'ai essayé mais ça efface toute chose dans le fichier2.
setlocal enabledelayedexpansion
for /f "tokens=1" %%a in (file1) do (type file2 | findstr /v %%a > file2)
pause
Bas de ligne j'ai besoin pour atteindre le ci-dessous les résultats
File1
00000
11111
File2
22222
Aider s'il vous plaît !
Vous devez vous connecter pour publier un commentaire.
Ce fait le travail. Elle s'articule autour de l'utilisation
findstr /m
option et errorlevels.Aussi qu'il écrit dans un fichier temporaire pendant le traitement (et la nettoie).
Je pense que c'est le plus simple et le plus rapide natif de lot de la solution
Notez que j'ai utilisé le
findstr /i
casse option. Ceci est important parce que d'un findstr bug que peut entraîner l'oubli de matches lors de la recherche de multiples chaînes littérales, à moins que le/i
ou/r
les options sont utilisées. Le casse solution de contournement ne devrait pas influer sur vous depuis que vous êtes jongler avec les chiffres.Approche différente:
Il a les caractéristiques suivantes:
les analyse de chacun des fichiers uniquement une fois
- doublons dans fichier1 sera effectivement ignoré
- vous pouvez charger le fichier fichier1 dans la mémoire et ensuite plusieurs file_x contre elle à tester.
Notes:
J'ai simplement l'écho unique nums pour console, vous avez besoin de changer pour écrire ce fichier
Suppose que vous comparez mots et il est un mot par ligne
Il est limité par nombre maximal de variables possible de définir. Je n'ai pas la moindre idée de ce que le nombre est... je l'ai essayé avec 20 000 lignes dans fichier1 (donc 20 000 vars défini)
Cela peut être l'un de la solution:
/I
option expose FINDSTR bug traiter avec plusieurs termes de recherche, 2) le Manque de/X
option permet2
pour correspondre à123
, 3) Ne tient pas compte de l'écrasement file2.txt avec les résultats.