Obtenir le répertoire batchfile courant

tout d'abord, j'ai vu ce sujet mais je ne pouvais pas comprendre cela.

Question:

il y a un fichier par lot dans D:pathtofile.bat avec le contenu suivant:

echo %cd%
pause

sortie:

C:

Il doit être D:pathto

Qu'est-ce que je fais de mal?

210
demandé sur Community 2013-06-12 15:09:22

3 réponses

la variable système en lecture seule %CD% conserve le chemin de l'appelant du lot, et non l'emplacement du fichier du lot.

vous pouvez obtenir le nom du script de lot lui-même dactylographié par l'utilisateur avec %0 (par exemple scripts\mybatch.bat ). Parameter extensions peut être appliqué à cela de sorte que %~dp0 retournera le lecteur et le chemin au script de lot (par exemple W:\scripts\ ) et %~f0 retournera le chemin complet (par exemple W:\scripts\mybatch.cmd ).

vous pouvez Vous référer à d'autres fichiers dans le même dossier que le script de commandes en utilisant cette syntaxe:

CALL %0\..\SecondBatch.cmd

cela peut même être utilisé dans un sous-programme, Echo %0 donnera l'étiquette d'appel mais, echo "%~nx0" vous donnera le nom de fichier du script de lot.

lorsque la variable %0 est étendue, le résultat est entouré de guillemets.

pour en savoir plus sur les paramètres des lots .

402
répondu Stoleg 2015-08-16 18:18:49

très simple:

setlocal
cd /d %~dp0
File.exe
92
répondu shay 2014-10-05 23:44:27

dans votre .fichier bat:

set mypath=%cd%

vous pouvez maintenant utiliser la variable %mypath% pour référencer le chemin du fichier au fichier .bat . Pour vérifier que le chemin est correct:

@echo %mypath%

Par exemple, un fichier appelé DIR.bat avec le contenu suivant

set mypath=%cd%
@echo %mypath%
Pause

exécuter à partir du répertoire g:\test\bat se fera l'écho de ce chemin d'accès dans la fenêtre de commande DOS.

16
répondu rockerron 2016-05-12 08:01:04