Je souhaite écrire un lot qui trouve tous les documents inférieurs à 50 mb dans c:\
et les copier dans un dossier mais ignorer les documents du répertoire système. Je préfère qu'il ne cherche même pas dans le répertoire système.commande forfiles ignorer un répertoire
Voici mon lot qui trouve et copie tous les fichiers moins 50 mb dans le bon répertoire mais je ne peux pas le faire pour ignorer le système de la recherche ou le répertoire C:\Windows
.
@ECHO off
:: variables
SET odrive=%odrive:~0,2%
SET backupcmd=xcopy /s /c /d /e /h /i /r /y
MKDIR "C:\Users\Documents\USBBackups\DOC\C"
forfiles /P C:\ /M *.DOC* /S /C "cmd /c if @fsize leq 50000000 echo @PATH " > "C:\Users\Documents\USBBackups\DOCC.txt"
FOR /F "tokens=*" %%a in (C:\Users\Documents\USBBackups\DOCC.txt) do xcopy %%a "C:\Users\Documents\USBBackups\DOC\C" /c /h /i /r /y
@ECHO off
Merci beaucoup pour votre aide. Avez-vous un conseil pour augmenter la performance et la vitesse du code? –
De rien!Je ne peux pas vraiment améliorer les performances de l'approche en utilisant des boucles 'for' imbriquées; cependant, pour le rendre plus rapide, vous pourriez peut-être exclure plus de dossiers (comme 'C: \ Program Files'); ou une autre idée n'est pas d'exclure (a) certains dossiers, mais d'inclure uniquement des dossiers dédiés, car cela pourrait aussi réduire le nombre total de dossiers ... – aschipfl
merci pour le conseil d'ailleurs comment puis-je enregistrer le résultat de votre code d'une ligne (pour/D ...) dans un fichier .txt comme celui de mon code forfiles. J'ai vraiment essayé mais il écrase le bloc-notes dans chaque boucle –