Ce script, devrait afficher la structure des sous-dossiers (par rapport au .BAT) avec le chemin relatif (chemin à partir du BAT). Il me manque plus qu'à utiliser la valeur de %L% à la place du 2 dans la ligne
Code:
dans la sous-routine SUB.
Code :
- ::Affiche la structure des sous-dossiers avec leur chemin relatif à celui de ce BATCH
- @ECHO OFF
- FOR %%a in ("%CD%" ) DO SET racine=%%~Pna
- ECHO.%racine%
- SET s=%racine%
- :LONG
- SET /a L+=1
- SET s=%s:~0,-1%
- IF "%s%"=="" ECHO.LONGUEUR: %L% &Pause &GOTO SHOW
- GOTO LONG
- :SHOW
- ::Affiche le nom des chemins
- FOR /F "Delims=" %%f in ('DIR /b /s /ad "*.*"') DO (
- CALL :SUB "%%~Pnf"
- )
- Pause
- ECHO.SUITE DU BATCH
- ::Renvoie une sous chaine
- :SUB
- SET s=%~1
- ECHO.%s:~2%
- GOTO :EOF
|
1. Aurriez-vous une idée? Ceci ECHO.%s:~%L%% ne fonctionne pas !!!
La solution est peut-être ici: http://www.computing.net/programmi [...] 11261.html
mais je n'y arrive pas avec ceci: ECHO.!s:~%L%!
2. Est-on obliger d'utiliser une sous routine (:SUB) pour couper la chaine %%~Pnf ?
En effet: extraire une sous-chaine de %var1% est facile.
Mais d'une variable de la forme %%var2 ??
Merci