2017-09-13 2 views
0

J'ai créé un script btach qui fonctionne bien, à l'exception de renvoyer des chaînes supplémentaires qui ne correspondent pas exactement au fichier source. Lorsque j'exécute le script ci-dessous, il renvoie des chaînes supplémentaires qui partagent la même structure numérique que les numéros du fichier .txt, mais avec des numéros supplémentaires à la fin de ceux-ci.comment appliquer des expressions findstr à la première colonne d'une chaîne dans un fichier .csv tout en renvoyant la chaîne entière dans CMD?

recherche de "^%%L" qui = "^12210" retournera les chaînes pour 12210 et 122100,122101,122102 ect ..

Toute aide est grandement appréciée!

script batch:

for /d %%a in (*) do (
    for /f %%f in ("%%a"\*.txt) do (
     for /f %%L in (%%f) do (
      findstr "^%%L" C:path\file.csv >> %%a.csv 
     ) 
    ) 
    move %%a.csv "%%a" >nul 
) 
+1

Si vous éditez la question et collez quelques exemples d'enregistrements, cela serait utile. – lit

+0

Vous l'avez, mise à jour maintenant, merci – bNicholS

+0

Si le csv a une virgule comme délimiteur l'inclure dans findstr 'findstr"^%% L, "' – LotPings

Répondre

0

@ Merci santes pour l'aider !! Vos commentaires m'ont fait aller dans la bonne direction et le problème est résolu. J'ai fini par devoir modifier un peu l'expression pour retourner toute la chaîne. Voici ce qui a fonctionné.

findstr "^%%L,*,*\>" C:\path\file.csv.