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?
À 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).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
.
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"
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
.
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%
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.