web-dev-qa-db-fra.com

script batch pour définir une variable avec l'emplacement du chemin actuel

Comment puis-je définir une variable avec l'emplacement actuel? comme si j'arrivais dans c:\test et définissais la variable ce serait test .. et si j'arrivais à l'intérieur de c:\test\test2 la variable serait test2? ...

Je pense utiliser un for pour entrer dans un grand nombre de dossiers et vérifier si un fichier existe, si le bon fichier existe, je veux définir le dossier actuel sur une variable afin de pouvoir copier le chemin et copier ce dossier ...

Ok donc le problème principal est de copier le reste des fichiers dans le même dossier que le .inf ... s'il vous plaît aidez-moi!

Je vous remercie beaucoup

41
massaki

Le répertoire courant est dans la variable "shadow" cd.
Tu pourrais essayer

set "var=%cd%"
69
jeb
%~dp0

Cela se développe dans le lecteur et le chemin d'accès du fichier de commandes en cours d'exécution. J'entoure généralement mes fichiers batch avec quelque chose comme:

@echo off
pushd %~dp0

...

popd

Edit: Il semble que je n'ai pas compris l'OP. Mon exemple obtient l'emplacement du script en cours d'exécution, pas le "répertoire actuel". +1 à jeb.

13
tenfour

Je pense qu'il y a une petite confusion ici. % CD% a toujours le répertoire actuel, vous n'avez donc pas besoin d'ajouter quoi que ce soit pour l'avoir. Cependant, en relisant votre question d'origine, je pense que vous avez besoin de la DERNIÈRE PARTIE du répertoire actuel, c'est-à-dire le nom de l'emplacement actuel à l'exclusion de tous les emplacements précédents. Si oui, alors vous pouvez utiliser ceci:

set i=0
:nextdir
set /a i+=1
for /f "tokens=%i% delims=\" %%a in ("%CD%") do if not "%%a" == "" set lastdir=%%a& goto nextdir
echo Current location: %lastdir%
2
Aacini