Dans un fichier de commandes Windows, existe-t-il un moyen de parcourir une hiérarchie de dossiers/sous-dossiers en effectuant une action sur chaque fichier?Comment parcourir l'arbre/les sous-arborescences de dossiers dans un fichier batch Windows?
15
A
Répondre
13
Oui, vous pouvez le faire en utilisant la commande for
avec le commutateur /r
, .: par exemple
for /r %%f in (*) do echo %%f
Voir aussi this question pour un exemple.
4
Vous pouvez utiliser la commande FOR
avec le commutateur /r
, qui parcourt l'arborescence de répertoires en exécutant tout ce que vous spécifiez dans l'instruction DO
de chaque répertoire. Là, vous pouvez imbriquer une autre instruction FOR
, en utilisant un dir /b *.*
dans le bloc SET
.
1
Heureusement, j'ai un but assez similaire en ce qui concerne ce fil. Je crois INSTRUCTIONS
dir /b /s /ad *.* [enter]
produira arborescence comme résultat
complete_path\dir_01_lev_01
complete_path\dir_02_lev_01
complete_path\dir_03_lev_01
complete_path\dir_01_lev_01\dir_11_lev_02
complete_path\dir_01_lev_01\dir_12_lev_02
complete_path\dir_02_lev_01\dir_13_lev_02
complete_path\dir_02_lev_01\dir_14_lev_02
complete_path\dir_02_lev_01\dir_15_lev_02
complete_path\dir_03_lev_01\dir_16_lev_02
Mais je veux conduire comme ci-dessous
complete_path\dir_01_lev_01
complete_path\dir_01_lev_01\dir_11_lev_02
complete_path\dir_01_lev_01\dir_12_lev_02
complete_path\dir_02_lev_01
complete_path\dir_02_lev_01\dir_13_lev_02
complete_path\dir_02_lev_01\dir_14_lev_02
complete_path\dir_02_lev_01\dir_15_lev_02
complete_path\dir_03_lev_01
complete_path\dir_03_lev_01\dir_16_lev_02
Ainsi, ce SCRIPT Naissez :)
@echo off
rem
rem ::: My name is Tree-Folder-8-Level.cmd
rem
setlocal
rem ::: Put started PATH here
set i01=complete_path
for /f "delims=" %%a in ('dir "%i01%" /ad /on /b') do call :p001 "%%a"
endlocal
goto :eof
:p001
rem ::: Display 1st LEVEL of started PATH
echo %~1
for /f "delims=" %%b in ('dir "%i01%\%~1" /ad /on /b') do call :p002 "%~1\%%b"
goto :eof
:p002
rem ::: Display 2nd LEVEL of started PATH
echo %~1
for /f "delims=" %%c in ('dir "%i01%\%~1" /ad /on /b') do call :p003 "%~1\%%c"
goto :eof
:p003
rem ::: Display 3rd LEVEL of started PATH
echo %~1
for /f "delims=" %%d in ('dir "%i01%\%~1" /ad /on /b') do call :p004 "%~1\%%d"
goto :eof
:p004
rem ::: Display 4th LEVEL of started PATH
echo %~1
for /f "delims=" %%e in ('dir "%i01%\%~1" /ad /on /b') do call :p005 "%~1\%%e"
goto :eof
:p005
rem ::: Display 5th LEVEL of started PATH
echo %~1
for /f "delims=" %%f in ('dir "%i01%\%~1" /ad /on /b') do call :p006 "%~1\%%f"
goto :eof
:p006
rem ::: Display 6th LEVEL of started PATH
echo %~1
for /f "delims=" %%g in ('dir "%i01%\%~1" /ad /on /b') do call :p007 "%~1\%%g"
goto :eof
:p007
rem ::: Display 7th LEVEL of started PATH
rem ::: and 8th LEVEL of started PATH
echo %~1
for /f "delims=" %%h in ('dir "%i01%\%~1" /ad /on /b') do echo %~1\%%h
goto :eof
Des idées plus brillantes sont welco moi. :)
0
dir /b /s /ad *.* | sort
Cela devrait donner les mêmes résultats quelle que soit la profondeur de chemin
Questions connexes
- 1. CFileDialog :: Parcourir les dossiers
- 2. Copier dans tous les fichiers batch de dossiers?
- 3. Manipuler le temps dans un fichier batch
- 4. Rediriger passé arguments à un fichier batch windows
- 5. Exécution de fichier batch commandes de Windows de manière asynchrone
- 6. Comment obtenir l'équivalent de dirname() dans un fichier batch?
- 7. Comment exécuter un fichier batch par javascript
- 8. Problème avec Windows Fichier batch sur Windows 7
- 9. désactiver la virtualisation de dossiers dans Windows
- 10. Fichiers batch: comment lire un fichier?
- 11. Comment fonctionne un fichier batch Microsoft?
- 12. fichier batch Windows - vérifier si le fichier a été modifié
- 13. Variables dans le fichier batch Windows effectif pour le déploiement?
- 14. Dossiers d'installation de Windows
- 15. Parcourir les dossiers du serveur dans le client
- 16. Comment fermer la fenêtre de commande d'un fichier batch démarré par un autre fichier batch
- 17. Appel cmdlets PowerShell de fichier batch de Windows
- 18. OpenFileDialog ne pas parcourir les dossiers sous .NET CF
- 19. Comment appeler un fichier batch à partir d'un fichier MSI
- 20. Comment puis-je comparer deux fichiers dans un fichier batch?
- 21. Windows batch-file errorlevel question
- 22. Obtention du nom de fichier sans extension dans un script batch Windows
- 23. écrire un fichier batch pour copier un fichier texte du système Windows au système Unix
- 24. "cp --parents" dans le fichier batch/VBScript
- 25. Quel est le problème avec mon fichier batch Windows (.bat)?
- 26. Comment exécuter un fichier batch à partir de Java?
- 27. Windows Batch File - requête ENABLEDELAYEDEXPANSION
- 28. Comment copier des fichiers avec Windows Batch?
- 29. Fichier batch interactif
- 30. Comment exécuter un fichier batch sur un ordinateur distant?