web-dev-qa-db-fra.com

chemin relatif dans le script BAT

Voici mon propre dossier de programme sur mon pilote USB:

Program\
     run.bat
     bin\
         config.ini
         Iris.exe
         library.dll
         etc.

Je voudrais utiliser run.bat pour démarrer mon Iris.exe

Je ne peux pas utiliser ceci: F: /Program/bin/Iris.exe comme un raccourci, car parfois, il ne me donne pas le nom du pilote F (E, G)

Que dois-je écrire dans le fichier chauve-souris pour fonctionner comme un charme? J'ai essayé ça dans le fichier BAT:

 ˝\bin\Iris.exe˝ 

Ça ne marche pas :(

114
user2083037

Utilisez ceci dans votre fichier batch:

%~dp0\bin\Iris.exe

%~dp0 résout le chemin d'accès complet du dossier dans lequel réside le script de traitement par lots.

252
Ansgar Wiechers

Vous pouvez obtenir toutes les propriétés de fichier requises en utilisant le code ci-dessous:

FOR %%? IN (file_to_be_queried) DO (
    ECHO File Name Only       : %%~n?
    ECHO File Extension       : %%~x?
    ECHO Name in 8.3 notation : %%~sn?
    ECHO File Attributes      : %%~a?
    ECHO Located on Drive     : %%~d?
    ECHO File Size            : %%~z?
    ECHO Last-Modified Date   : %%~t?
    ECHO Parent Folder        : %%~dp?
    ECHO Fully Qualified Path : %%~f?
    ECHO FQP in 8.3 notation  : %%~sf?
    ECHO Location in the PATH : %%~dp$PATH:?
)
35

J'ai trouvé que %CD% donne le chemin depuis lequel le script a été appelé et non le chemin du script. Cependant, %~dp0 donnera le chemin du script lui-même.

18
Sitri

Vous devriez pouvoir utiliser le répertoire courant

"% CD%"\bin\Iris.exe

11
Johan A.

soit bin\Iris.exe (pas de barre oblique - car cela signifie qu'il faut commencer à partir de la racine)
ou \Program\bin\Iris.exe (chemin complet)

4
AjV Jsy