Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1616 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Structure des sous-dossiers avec chemin relatif au BAT

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Structure des sous-dossiers avec chemin relatif au BAT

n°1618595
budhax
Posté le 03-10-2007 à 17:54:29  profilanswer
 

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:
 

Code :
  1. ECHO.%s:~2%


 
dans la sous-routine SUB.
 
 

Code :
  1. ::Affiche la structure des sous-dossiers avec leur chemin relatif à celui de ce BATCH
  2. @ECHO OFF
  3. FOR %%a in ("%CD%" ) DO SET racine=%%~Pna
  4. ECHO.%racine%
  5. SET s=%racine%
  6. :LONG
  7. SET /a L+=1
  8. SET s=%s:~0,-1%
  9. IF "%s%"=="" ECHO.LONGUEUR: %L% &Pause &GOTO SHOW
  10. GOTO LONG
  11. :SHOW
  12. ::Affiche le nom des chemins
  13. FOR /F "Delims=" %%f in ('DIR /b /s /ad "*.*"') DO (
  14.     CALL :SUB "%%~Pnf"
  15. )
  16. Pause
  17. ECHO.SUITE DU BATCH
  18. ::Renvoie une sous chaine
  19. :SUB
  20. SET s=%~1
  21. ECHO.%s:~2%
  22. 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

mood
Publicité
Posté le 03-10-2007 à 17:54:29  profilanswer
 

n°1618665
budhax
Posté le 04-10-2007 à 01:01:24  profilanswer
 

Trouvé une solution:
 

Code :
  1. ::Structure des sous-dossiers avec leur chemin relatif
  2. @ECHO OFF
  3. IF NOT %1.==X. CMD /V:ON /C Call %0 X &GOTO :EOF
  4. FOR %%a in ("%CD%" ) DO SET racine=%%~Pna
  5. ECHO %racine%
  6. SET s=%racine%
  7. :LONG
  8. SET /a L+=1
  9. SET s=%s:~0,-1%
  10. IF "%s%"=="" GOTO SHOW
  11. GOTO LONG
  12. :SHOW
  13. SET /a L+=1
  14. ::Affiche le nom des chemins
  15. FOR /F "Delims=" %%f in ('DIR /b /s /ad') DO (
  16.     Call :SUB "%%~Pnf"
  17. )
  18. Pause
  19. ::Sous routine de traitement du chemin
  20. :SUB
  21. SET s=%~1
  22. ECHO.Full    : %s%
  23. ECHO.Relative: !s:~%L%!
  24. ECHO.------------------
  25. GOTO :EOF


 
PS. Je vais utiliser ce chemin relatif, pour construir l'index (en HTML) de mon dossier de travail global. A suivre.
 
Bien à vous.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Structure des sous-dossiers avec chemin relatif au BAT

 

Sujets relatifs
Page avec des dossierscopie de fichiers vers dossiers en fonction du nom de fichier
[Résolu] Fonction readfile() et chemins relatifs/absolus[résolu] separateur de chemin : existe t'il une constante?
recupérer un nombre dans un fichier texte grace a un Batprobleme de structure
[VBA] chemin réseau[VB.NET] Application des acls sur des dossiers
chemin absolu/chemin relatif 
Plus de sujets relatifs à : Structure des sous-dossiers avec chemin relatif au BAT


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR