622 votes

Quel est le répertoire courant dans un fichier batch ?

Je veux créer quelques fichiers batch pour automatiser un programme.

Ma question est la suivante : lorsque je crée le fichier batch, quel est le répertoire courant ? S'agit-il du répertoire où se trouve le fichier ou du même répertoire que celui qui apparaît dans l'invite de commande, ou encore d'autre chose ?

1214voto

JRL Points 36674

A partir de votre fichier batch :

  • %cd% fait référence à la le répertoire de travail actuel (variable)
  • %~dp0 fait référence au chemin complet du répertoire du fichier batch (statique)
  • %~dpnx0 y %~f0 Les deux font référence au chemin complet du répertoire du lot et au nom du fichier (statique).

Voir aussi : Que signifie %~dp0, et comment cela fonctionne-t-il ?

6 votes

@ - %0 pourrait donner le nom de la sous-routine courante, mais %~dp0 sera toujours donnez le chemin complet du fichier batch en cours d'exécution.

86 votes

En fait, il semble que %~dp0 donne le chemin complet vers le répertoire dans lequel se trouve le fichier batch en cours d'exécution. %~dpnx0 (qui est équivalent à %~f0) donne le chemin complet du fichier batch. Voir robvanderwoude.com/parameters.php pour plus de détails.

6 votes

Voir aussi les bonnes réponses détaillées d'une question similaire : Obtenir la liste des arguments passés dans le script (.bat) de Windows.

29voto

GolezTrol Points 54531

Il généralement est le répertoire à partir duquel le fichier batch est lancé, mais si vous lancez le fichier batch à partir d'un raccourci, un répertoire de départ différent peut être donné. De même, lorsque vous êtes dans cmd, et que votre répertoire actuel est c:\dir3 vous pouvez toujours lancer le fichier batch en utilisant c:\dir1\dir2\batch.bat dans ce cas, le répertoire courant sera c:\dir3 .

14voto

J. Bond Points 396

Dans un fichier batch, %cd% est la commande la plus couramment utilisée pour le répertoire courant, bien que vous puissiez définir votre propre variable :

set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)

Disons que vous voulez ouvrir Myprog.exe. S'il était dans le même dossier, vous utiliseriez la commande :

start %mypath%\Myprog.exe

Cela ouvrirait Myprog à partir du dossier actuel.

L'autre option consiste à créer un répertoire dans C : appelé AutomatePrograms. Ensuite, vous transférez vos fichiers dans ce dossier puis vous pouvez les ouvrir en utilisant la commande suivante :

start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"

9voto

Supposons que vous ouvriez un fichier dans votre répertoire actuel. La commande serait :

 start %cd%\filename.filetype

J'espère avoir répondu à votre question.

5voto

anuj0901 Points 77

Il s'agit du répertoire à partir duquel vous lancez la commande pour exécuter votre fichier batch.

Comme mentionné dans les réponses ci-dessus, vous pouvez ajouter la commande ci-dessous à votre script pour vérifier :

> set current_dir=%cd%
> echo %current_dir%

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