Créer un script permettant d'afficher toute l'arborescence (équivalent de tree sur Linux/BSD)

Introduction

On peut créer un petit script en batch pour générer un fichier 'index.txt' dans lequel se trouvent tous les fichiers et dossiers depuis l'emplacement du script.

On créée un fichier tree.bat, on clique droit dessus, Modifier.. et on copie/colle ce qui suit :


Script tree.bat

@echo off
REM Script pour générer un fichier d'index contenant toute l'arborescence de dossiers et de fichiers

REM Définir le nom du fichier d'index
set INDEX_FILE=index.txt

REM Changer le codage de la console en UTF-8
chcp 65001

REM Obtenir la date et l'heure actuelles
for /f 'tokens=2 delims==' %%I in ('wmic os get localdatetime /value') do set datetime=%%I
set CURRENT_DATE=%datetime:~6,2%-%datetime:~4,2%-%datetime:~0,4%
set CURRENT_TIME=%datetime:~8,2%:%datetime:~10,2%:%datetime:~12,2%

REM Écrire la date et l'heure en haut du fichier d'index
echo Index généré le %CURRENT_DATE% à %CURRENT_TIME% > %INDEX_FILE%
echo. >> %INDEX_FILE%

REM Fonction pour lister les fichiers et dossiers récursivement
call :list_files '%~dp0' >> %INDEX_FILE%

REM Afficher un message de confirmation
echo L'arborescence des dossiers et fichiers a été générée dans %INDEX_FILE%

REM Pause pour garder la fenêtre ouverte
pause
exit /b

:list_files
setlocal enabledelayedexpansion
set 'current_dir=%~1'
echo !current_dir!
for /f 'delims=' %%i in ('dir /b /a '%current_dir%'') do (
set 'item=%%i'
echo !current_dir!\!item!
if exist '!current_dir!\!item!\' (
call :list_files '!current_dir!\!item!'
)
)
endlocal
exit /b

Utilisation

Il suffit de double-cliquer sur le fichier.. et hop, le fichier index.txt est généré, avec toute l'arborescence à partir de l'emplacement du script.


⬆️ Retour en haut de la page