Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Tri de fichiers
Auteur Message
Répondre en citant
Message Tri de fichiers 
Bonjour à tous,


J'aurais besoin de votre aide sur un batch... en fait :


J'ai un dossier, "C:\FOOBAR", pouvant contenir un ou plusieurs fichiers .doc/docx répartis dans différents sous-répertoires.



D'abord, il faudrait vérifier si FOOBAR contient au moins 1 fichier .doc/docx


SI OUI

a. à travers les sous-dossiers de FOOBAR, rechercher tous les fichiers .doc/.docx, et les copier dans C:\FOOBAR\

b. effacer tous les sous-dossiers de FOOBAR.

c. lancer un .exe


SINON

exit




Merci pour votre aide Smile



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Tri de fichiers 
salut code fonctionnel chez moi :

Code:


@echo off
echo en cours...
for %%A in (doc docx) do (
for /f "tokens=*" %%B in ('dir /b /s c:\FOOBAR\*.%%A') do (
if exist "%%B" ( goto :ok )
:: on teste la présence de fichiers doc ou docx dans FOOBAR si oui on quitte la boucle et on va exécuter les commandes!
))
:: sinon exit
goto exit
:ok
for /f "tokens=*" %%B in ('dir /A:D /b /s "c:\FOOBAR\"') do (
for %%C in (docx doc) do (
for /f "tokens=*" %%D in ('dir /b /s "%%B\*.%%C"') do (
if exist "%%D" (
copy "%%D" "c:\FOOBAR\"
echo fichier copier %%D dans "c:\FOOBAR\" >> log.txt
:: copy des fichiers trouvé et enregistrement dans log.txt
)))
Del /F /Q /S "%%B"
Rmdir "%%B"
:: à la fin de chaque sous dossiers visité on le supprime et passe au suivant..
if not exist "%%B" ( echo fichier supprimer %%B >> log.txt )
)
cls
echo fin du traitement
if exist log.txt ( start log.txt )
start "ton prog.exe"
pause
:exit


tu a noté que tous les sous dossiers doivent être supprimer à la fin du traitement. donc je sais pas si tu a d'autres doc dans le fichier si oui ils seront supprimer aussi.
!
avant dérnière ligne
Code:

start "ton prog.exe"

remplace "ton prog.exe" par le chemin du prog Wink
en l'attente de confirmation de mon code par un modo bon week les gents




______________________________________________________


Répondre en citant
Message Tri de fichiers 
un tout grand merci Okay


bizzare j'ai du rajouter des commentaires ":: blabla" sinon il mettait

Code:
) inattendu


bizarre


Code:
@echo off
echo en cours...
for %%A in (doc docx) do (
for /f "tokens=*" %%B in ('dir /b /s c:\FOOBAR\*.%%A') do (
if exist "%%B" ( goto :ok )
:: on teste la présence de fichiers doc ou docx dans FOOBAR si oui on quitte la boucle et on va exécuter les commandes!
:: blabla
))
:: sinon exit
goto exit
:ok
for /f "tokens=*" %%B in ('dir /A:D /b /s "c:\FOOBAR\"') do (
for %%C in (docx doc) do (
for /f "tokens=*" %%D in ('dir /b /s "%%B\*.%%C"') do (
if exist "%%D" (
copy "%%D" "c:\FOOBAR\"
REM echo fichier copier %%D dans "c:\FOOBAR\" >> log.txt
:: copy des fichiers trouvé et enregistrement dans log.txt
:: blabla
)))
Del /F /Q /S "%%B"
Rmdir "%%B"
:: à la fin de chaque sous dossiers visité on le supprime et passe au suivant..
REM if not exist "%%B" ( echo fichier supprimer %%B >> log.txt )
)
cls
echo fin du traitement
REM if exist log.txt ( start log.txt )

REM start "ton prog.exe"

:exit



-par ailleurs si dans 2 sous dossiers différents se trouvent des fichiers de même nom, il ne recopie qu'un des 2.

serait-il possible d'éventuellement renommer l'autre ? mais je suppose que ça implique l'utilisation d'une variable ...

si c'est trop compliqué pas grave Smile


-le top du top, serait que, le temps du traitement, il change les droits d'accès au dossier c:\FOOBAR (pour éviter un accès concurrent)..du style uniquement full access à l'administrateur domaine. mais je suppose que c'est seulement possible en powershell non ?




merci mille fois déjà, tu m'as beaucoup aidé la ! c'est top



Message Tri de fichiers 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch