2010-01-27 7 views
1

J'ai un dossier contenant plus de 1000 fichiers xml. J'ai besoin de modifier ces fichiers xml, pour lesquels j'utilise xslt.Itérer dans un dossier à l'aide du script batch

Maintenant, le problème que je suis confronté est que je veux utiliser le script par lots pour faire cette modification de manière récursive pour tous les fichiers xml dans le dossier, plutôt que de le faire manuellement. Comment puis-je le faire en utilisant un script batch?

Il serait utile que quelqu'un puisse me dire comment lire tous les fichiers xml présents dans un dossier et les copier dans un autre dossier portant le même nom.

+0

sous Windows? –

+0

Voir http://stackoverflow.com/questions/180741/how-to-do-something-to-each-file-in-a-directory-with-a-batch-script et http://stackoverflow.com/ questions/138497/batch-scripting-iterating-over-files-in-a-directory – Helen

Répondre

0

En supposant que vous utilisez batch DOS ...

Une opération copy simple, fonctionnera:

prompt> copy *.xml destinationDir 

Pour boucle et les fichiers processus individuellement, nous utilisons:

for %%R in (*) do (
    ... 
) 
6

Transformation:

for /r c:\your_root_folder\ %f in (*.xml) do your_transform_command %f 

Copie:

copy *.xml c:\your_target_folder\. 
+2

REMARQUE: Vous devez utiliser '%% f' dans un fichier batch. –

+0

+1 pour utiliser 'for' sans' dir' :-) – Joey

0

lire ce

HELP XCOPY,

et ce

HELP FOR.

et essayer

XCOPY \source\*.xml \destination /S

et essayer

FOR %a IN (\source\*.xml) DO echo %a

et lire maintenant

HELP CALL

et lire

HELP SET

et essayer

FOR %a in (\source\*.xml) DO CALL youraction %~na

et le temps que vous comprenez ce qui est arrivé, vous êtes prêt à atteindre votre objectif.

Questions connexes