Manipuler des noms de fichiers / chemins en batch
Comment faire pour exécuter des traitements dans un script .bat en fonction du nom du fichier ou de son chemin ? Il existe différentes variables prévues à cet effet, dont l’une était utilisée dans un article précédent.
Prenons comme exemple un script test.bat situé dans C:\Documents and Settings\nicolas\.
echo %~d0
Renvoie la lettre du lecteur (C:).
echo %~nx0
Renvoie le nom du fichier et son extension (test.bat).
echo %~x0
Renvoie l’extension du fichier (.bat).
echo %~f0
Renvoie le chemin complet au format long (C:\Documents and Settings\nicolas\test.bat).
echo %~sf0
Renvoie le chemin complet au format court (C:\DOCUME~1\nicolas\test.bat).
echo %~p0
Renvoie le chemin au format long sans le nom du fichier ni la lettre du lecteur (\Documents and Settings\nicolas\).
echo %~dp0
Renvoie le chemin au format long sans le nom du fichier (C:\Documents and Settings\nicolas\).
echo %~sp0
Renvoie le chemin au format court sans le nom du fichier ni la lettre du lecteur (\DOCUME~1\nicolas\).
Pour mettre en pratique, voici un script reprenant certaines de ces variables afin de tester le bon fonctionnement.
@echo off echo Le fichier se nomme : %~nx0 echo Son extension est : %~x0 echo Il est lance depuis : %~d0 echo Le chemin complet est : %~f0 echo. pause exit
Et voici le résultat :
Le fichier se nomme : test.bat Son extension est : .bat Il est lance depuis : C: Le chemin complet est : C:\Documents and Settings\nicolas\test.bat Appuyez sur une touche pour continuer...

Merci Beaucoup !!
Voici enfin la solution (simple en plus…) à mes problèmes de gestions de noms de fichier
Des plombes que je la cherchais.
Je partagerai ta solution sur le Forum spécialisé (http://batch.xoo.it) où j’ai posé la question.
Merci