Bonjour mlkgiosn,
Comme on le dit, la nuit porte conseil.
Par contre, mon batch permet uniquement de lister les noms des fichiers .bat mais ne fait pas une copie intégrale des fichiers .bat dans un dossier.
Pour faire une copie des fichiers .bat (sans déplacer le fichier original), il faut effectuer cette commande. Inconvénient, cela copie également l'emplacement des dossiers contenant un fichier .bat. On peut éviter cela en supprimant le commutateur /S
- Code: Tout sélectionner
@echo OFF
Xcopy /I / S "*.bat" "C:\test\"
start C:\test
exit
Celui-ci est parfait: - Code: Tout sélectionner
@echo OFF
Xcopy /I "*.bat" "C:\test\"
start C:\test
exit
La liste est moins longue.
Interprétation des commutateurs:/A Copie uniquement les fichiers ayant l’attribut archive, ne
modifie pas l’attribut.
/S Copie les répertoires et sous-répertoires à l’exception des
répertoires vides.
/I Si la destination n’existe pas et que plus d’un fichier est
copié, considérer la destination comme devant être
un répertoire.
En batch, on pourrait partir sur une boucle avec FOR %%variable IN (ensemble) DO commande [paramètres] ou FOR /R [[lecteur:]chemin] %%variable IN (ensemble) DO commande [paramètres] mais cela devient compliqué puisque je n'ai plus pratiqué le batch depuis fort longtemps. J'en resterais sur mon dernier batch.
Edit: j'ai fais un début avec une boucle FOR mais ce n'est pas encore au point.
Il faut créer le répertoire sous un autre lecteur que C: afin d'éviter l'erreur " Impossible de réaliser une copie cyclique"
Nota: ( quand on copie le contenu d'un dossier sous C: dans un sous-dossier de ce même dossier sous le même lecteur, on obtient cette erreur).
batch testé: ok : - Code: Tout sélectionner
@echo off
md d:\test
for /R c: %%f in (*.bat) do Xcopy %%f D:\test /I /S /F /Y
start D:\test
exit
Bonne journée