Obtenir un fichier batch à exécuter par rapport au dossier réel, pas un raccourci

8

J'ai créé quelques fichiers de commandes qui déplacent les fichiers par rapport au dossier dans lequel se trouve le fichier de commandes.

J'ai ajouté le dossier à ma barre des tâches à l'aide des barres d'outils => Nouvelle barre d'outils ..., mais maintenant, lorsque j'exécute les fichiers de commandes, la position de départ est Mes documents (U :), pas l'emplacement réel des fichiers de commandes. Existe-t-il un moyen de le faire utiliser le chemin réel?

ck.
la source

Réponses:

10

Mettez ce qui suit en haut de votre fichier de commandes:

CD /D %~dp0

Explication:

  • L' /Doption indique CDde changer le lecteur actuel ainsi que le répertoire actuel d'un lecteur.
  • %0 est le nom du fichier batch
  • Le ~dit que nous voulons utiliser certains modificateurs
  • d se développe pour conduire la lettre.
  • p se développe en un chemin.

Il en %~dp0va de même du répertoire dans lequel réside le fichier de commandes.

Dave Webb
la source
Le CD fonctionne parfaitement, mais il ne change pas la désignation du lecteur, donc le script essaie toujours de s'exécuter sur U: \
ck.
Vous avez ajouté% ~ d0 pour changer de lecteur suite à votre explication.
ck.
@ck - Oublié les lecteurs, désolé. C'est probablement le plus simple à utiliser CD /D. Ont modifié la réponse pour refléter cela.
Dave Webb
nous pouvons utiliser à la PUSHDplace deCD /D
Tuan Anh Hoang-Vu