Presque toutes les options de code ci-dessus conduiront à une erreur si vous appelez le fichier bat depuis l'extérieur par un autre script ou programme. Par exemple, ce code : for %%I in (.) do set CurrDirName=%%~nxI, lorsqu'il est appelé depuis Notepad++, produira Notepad++, mais je n'ai pas besoin d'un nom de dossier parent Notepad++ sûrement ! C'est une mauvaise méthode. De plus, pour la même raison, n'utilisez pas %cd% ni aucune autre option. Utilisez uniquement les paramètres d'entrée de ce script, peut-être situé à distance. Sinon, vous obtiendrez le résultat pour l'appelant, mais pas appelé script et ce qui est écrit dans sa ligne de commande, mais pas ce qui doit être écrit dans la ligne de commande du code appelé. Utilisez ce code pour éviter les erreurs :
set path=%~p0
set path=%path:~0,-1%
For %%A in ("%path%") do (Set CurrDirName=%%~nxA)