169 votes

chemin relatif dans BAT script

Voici mon propre dossier de programmes sur ma clé USB :

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

Je voudrais utiliser run.bat pour commencer Iris.exe

Je ne peux pas l'utiliser : F:/Program/bin/Iris.exe comme un raccourci, parce que parfois il ne s'attache pas comme lecteur F: ( par exemple E: o G: )

Que dois-je écrire dans le fichier bat pour qu'il fonctionne indépendamment de la lettre du lecteur ?

J'ai essayé ceci dans le fichier BAT :

"\bin\Iris.exe"

Mais cela ne fonctionne pas.

344voto

Ansgar Wiechers Points 38466

Utilisez ceci dans votre fichier batch :

%~dp0\bin\Iris.exe

%~dp0 se résout au chemin complet du dossier dans lequel le lot script réside.

51voto

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:?
)

35voto

Sitri Points 451

J'ai constaté que %CD% donne le chemin à partir duquel le script a été appelé et non le chemin du script, cependant, %~dp0 donnera le chemin du script lui-même.

16voto

Johan A. Points 159

Vous devriez être en mesure d'utiliser le répertoire actuel

"%CD%" \bin\Iris.exe

6voto

AjV Jsy Points 1551

Soit bin\Iris.exe (pas de barre oblique en tête - car cela signifie qu'il faut partir de la racine)
ou \Program\bin\Iris.exe (chemin complet)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X