J'ai la structure du fichier et le dossier suivant (en utilisant les vrais noms):Comment puis-je déplacer des fichiers spécifiques de plusieurs sous-dossiers vers leur dossier parent respectif? (Batch Windows)
Carabidae/Pterostichinae/FolderNameXXX/dor/StackXXX/files.tif
Mon problème est que je dois obtenir un fichier spécifique, PM * *, à partir des dossiers StackXXX dans leur. dossiers parent/dor respectifs. Le dossier StackXXX peut ensuite être supprimé.
Il existe des centaines de noms de dossiers. Idéalement, je voudrais un fichier batch que je peux exécuter à partir du dossier Carabidae.
Il doit s'agir d'un fichier de traitement par lots car de nouveaux noms de dossiers seront ajoutés en permanence.
Après beaucoup de recherches, je trouve une solution semi-travail de this StackOverflow answer:
for /f "delims==" %%i in ('dir /a:d /b') do for /f "delims==" %%f in ('dir %%i /a:d /b') do (move "%%i\%%f\PM*.*" "%%i"&&rd "%%i\%%f" /s /q)
Il déplace le fichier et supprime le dossier, tout comme je veux. Mais le problème est que cela ne fonctionne que lorsqu'il est exécuté à partir d'un dossier FolderName, ce qui annule le but de gagner du temps du script. Je ne sais pas comment le modifier pour recurse dans les sous-dossiers afin que je puisse l'exécuter à partir du dossier supérieur.
Merci beaucoup pour toute aide!
'pour/r' peut vous aider ... – SteveFest
Je le pensais aussi, mais cela ne fonctionnait pas avec cette ligne de code. J'ai essayé de remplacer à la fois 'for/f' et chacun séparément, n'a pas fonctionné de tous les temps ... – trilobutt
Comprenez-vous comment' for/r' fonctionne? Veuillez vérifier https://ss64.com/nt/for_r.html pour plus d'informations et les méthodes d'utilisation – SteveFest