web-dev-qa-db-fra.com

Quel est le répertoire actuel dans un fichier de commandes?

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

Ma question est lorsque je crée le fichier de commandes, quel est le répertoire actuel? Est-ce le répertoire dans lequel se trouve le fichier ou est-ce le même répertoire que celui qui apparaît dans l'invite de commande, ou autre chose?

437
Aaron de Windt

À partir de votre fichier de commandes:

  • %cd% fait référence au répertoire de travail actuel (variable)
  • %~dp0 fait référence au chemin d'accès complet au répertoire du fichier de commandes (statique)
  • %~dpnx0 et %~f0 désignent tous deux le chemin d'accès complet au répertoire de lot et le nom du fichier (statique).
905
JRL

Il généralement est le répertoire à partir duquel le fichier de commandes est démarré, mais si vous démarrez le fichier de commandes à partir d’un raccourci, un autre répertoire de départ pourrait être indiqué. De même, lorsque vous êtes dans cmd et que votre répertoire actuel est c:\dir3, vous pouvez toujours démarrer le fichier de traitement par lot à l'aide de c:\dir1\dir2\batch.bat, auquel cas le répertoire actuel sera c:\dir3.

24
GolezTrol

Dans un fichier de commandes,% cd% est la commande la plus couramment utilisée pour le répertoire en cours, 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)

Alors disons que vous vouliez ouvrir Myprog.exe. Si c'é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 en C: appelé AutomatePrograms. Ensuite, vous transférez vos fichiers dans ce dossier et vous pouvez les ouvrir à l’aide de la commande suivante:

start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"
10
J. Bond

C'est le répertoire à partir duquel vous démarrez le fichier de commandes. Par exemple. si votre lot est dans c:\dir1\dir2 et que vous faites cd c:\dir3, puis exécutez le lot, le répertoire actuel sera c:\dir3.

5
icyrock.com

C'est le répertoire à partir duquel vous exécutez la commande pour exécuter votre fichier de commandes.

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%  
5
anuj0901

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.

4