Exécuter le contenu d'une variable [Script DOS] - Win NT/2K/XP - Windows & Software
MarshPosté le 10-09-2007 à 14:58:14
Dans un script, j'aimerai récupérer le nom du répertoire où je me trouve. Non pas le nom complet, mais le dernier niveau.
Par exemple pour le répertoire : d:\projets\projet002\ le script me donnerait projet002 dans une variable.
Malheureusement je suis sous DOS, et je n'y arrive pas.
En fait je détecte le '\' pour savoir si je suis dans le répertoire Voici ce que j'ai :
Citation :
set currentpath=%~p0 SET JOBNR=%currentpath:~-2,1% if "%JOBNR%" == "\" ( SET JOBNR=%currentpath:~-1,0% goto OK_DIR ) SET JOBNR=%currentpath:~-3,1% if "%JOBNR%" == "\" ( SET JOBNR=%currentpath:~-2,1% goto OK_DIR ) SET JOBNR=%currentpath:~-4,1% if "%JOBNR%" == "\" ( SET JOBNR=%currentpath:~-3,2% goto OK_DIR ) SET JOBNR=%currentpath:~-5,1% if "%JOBNR%" == "\" ( SET JOBNR=%currentpath:~-4,3% goto OK_DIR )
J'aimerai le remplacer par une boucle qui contiendrait quelque chose comme :
Citation :
set FIN=15 set /a FIN=%FIN% - 1 set COMMANDE=%CURRENTPATH%:~%FIN%,1 echo "commande : %COMMANDE%" set JOBNR=%%COMMANDE%% pause
La ligne echo "commande : %COMMANDE%" m'affiche bien la commande que je veux exécuter, mais je n'arrive pas à exécuter cette commande et à la mettre dans une variable.
Si quelqu'un a une idée....
Merci
--------------- Il n'est pas nécéssaire de réussir pour persévérer.
Marsh Posté le 10-09-2007 à 14:58:14
Dans un script, j'aimerai récupérer le nom du répertoire où je me trouve.
Non pas le nom complet, mais le dernier niveau.
Par exemple pour le répertoire : d:\projets\projet002\
le script me donnerait projet002 dans une variable.
Malheureusement je suis sous DOS, et je n'y arrive pas.
En fait je détecte le '\' pour savoir si je suis dans le répertoire
Voici ce que j'ai :
set currentpath=%~p0
SET JOBNR=%currentpath:~-2,1%
if "%JOBNR%" == "\" (
SET JOBNR=%currentpath:~-1,0%
goto OK_DIR
)
SET JOBNR=%currentpath:~-3,1%
if "%JOBNR%" == "\" (
SET JOBNR=%currentpath:~-2,1%
goto OK_DIR
)
SET JOBNR=%currentpath:~-4,1%
if "%JOBNR%" == "\" (
SET JOBNR=%currentpath:~-3,2%
goto OK_DIR
)
SET JOBNR=%currentpath:~-5,1%
if "%JOBNR%" == "\" (
SET JOBNR=%currentpath:~-4,3%
goto OK_DIR
)
J'aimerai le remplacer par une boucle qui contiendrait quelque chose comme :
set FIN=15
set /a FIN=%FIN% - 1
set COMMANDE=%CURRENTPATH%:~%FIN%,1
echo "commande : %COMMANDE%"
set JOBNR=%%COMMANDE%%
pause
La ligne echo "commande : %COMMANDE%"
m'affiche bien la commande que je veux exécuter, mais je n'arrive pas à exécuter
cette commande et à la mettre dans une variable.
Si quelqu'un a une idée....
Merci
---------------
Il n'est pas nécéssaire de réussir pour persévérer.