2009-10-13 8 views
0

J'essaie d'écrire un fichier de commandes qui ajoutera tous les fichiers * .csv dans les sous-répertoires immédiats à un seul fichier texte dans le répertoire en cours.Ajout d'un fichier txt à partir de plusieurs fichiers CSV dans des sous-répertoires

De diverses sources, je suis parvenu à rassembler ce code qui fonctionne très bien pour les fichiers dans le répertoire courant, mais pas de sous-dirs

for %%a in (*.csv) do (type %%a >> csvreport.txt) 

Si quelqu'un pouvait me aider, je serais très reconnaissant que je J'ai essayé différentes approches avec des caractères génériques mais sans succès.

Répondre

0
for /R .\ %%a in (*.csv) do (type %%a >> csvreport.txt) 

Le/R indique récursif et le paramètre est ensuite le dossier dans lequel pour commencer (. \ Est le répertoire courant).

Vous pouvez trouver les plus si vous exécutez for /?

0
dir /ad /b > dirs.txt 
for /f "tokens=1*" %%i in (dirs.txt) do cd %%i & for %%b in (*.csv) do (type %%b >> c:\csvreport.txt) & cd .. 

Utilisation du drapeau/R traversera tous les arbres sous-répertoire. Vous pouvez imbriquer les instructions 'for' pour travailler uniquement avec les sous-répertoires immédiats mais pas leurs sous-répertoires.

2

Une autre option ...

for /f usebackq %%a in (`dir /s /b *.csv`) do (type %%a >> csvreport.txt) 

EDIT: la lecture de vos détails un peu plus ... vous voulez juste les répertoires immédiats, vous pouvez le faire:

for /f usebackq %%a in (`dir /b /ad`) do for %%b in ("%%a"\*.csv) do (type "%%b" >> csvreport.txt) 
+0

Merci beaucoup! J'emboite ce fichier batch dans un script VB, donc tout ceci est très utile. acclame –

+1

J'ai essayé la commande comme suggéré avec '%% a' et j'ai eu des erreurs. Il s'avère que dans Windows 7, vous n'utilisez pas de variables comme '%% a', il doit être préfixé avec un seul'% '(donc'% a'). – TMC

+1

En fait, le signe du pourcentage double est nécessaire lorsque la commande est dans un fichier .bat. Si vous exécutez simplement ceci à l'invite de commande, vous n'avez besoin que d'un seul signe de pourcentage. –

Questions connexes