Existe-t-il une commande de ligne de commande Windows que je peux utiliser pour obtenir le chemin d'accès complet au répertoire de travail actuel?
De plus, comment puis-je stocker ce chemin dans une variable utilisée dans un fichier batch?
Existe-t-il une commande de ligne de commande Windows que je peux utiliser pour obtenir le chemin d'accès complet au répertoire de travail actuel?
De plus, comment puis-je stocker ce chemin dans une variable utilisée dans un fichier batch?
Réponses:
À utiliser cd
sans argument si vous utilisez directement le shell ou %cd%
si vous souhaitez l'utiliser dans un fichier batch (il se comporte comme une variable d'environnement).
Vous pouvez définir une variable de lot / environnement comme suit:
SET var=%cd%
ECHO %var%
exemple de capture d'écran à partir d'un Windows 7 x64 cmd.exe.
Mise à jour: si vous faites unSET var = %cd%
au lieu deSET var=%cd%
, voici ce qui se passe. Merci à jeb.
SET var = %cd%
mettre la valeur dans la variable var<space>
non dans var
. Vous devez éviter les espaces dans la commande SET
Citez l'aide de Windows pour la set
commande ( set /?
):
Si les extensions de commande sont activées, il existe plusieurs dynamiques variables d'environnement qui peuvent être développées mais qui n'apparaissent pas dans la liste des variables affichées par SET. Ces valeurs variables sont calculé dynamiquement à chaque fois que la valeur de la variable est développée. Si l'utilisateur définit explicitement une variable avec l'un de ces noms, alors cette définition remplacera celle dynamique décrite ci-dessous: % CD% - se développe dans la chaîne de répertoire actuelle. % DATE% - se développe à la date actuelle en utilisant le même format que la commande DATE. % TIME% - se développe à l'heure actuelle en utilisant le même format que la commande TIME. % RANDOM% - se développe en un nombre décimal aléatoire compris entre 0 et 32767. % ERRORLEVEL% - se développe à la valeur ERRORLEVEL actuelle % CMDEXTVERSION% - se développe aux extensions de processeur de commande actuelles numéro de version. % CMDCMDLINE% - se développe sur la ligne de commande d'origine qui a appelé le Processeur de commande.
Notez la %CD% - expands to the current directory string.
pièce.
Sous Unix?
pwd
Cela a toujours fonctionné pour moi:
SET CurrentDir="%~dp0"
ECHO The current file path this bat file is executing in is the following:
ECHO %CurrentDir%
Pause
Pour Windows, cd
seul vous montrera le répertoire de travail actuel.
Pour UNIX et les systèmes de travail, pwd
exécutera la même tâche. Vous pouvez également utiliser la $PWD
variable shell sous certaines coquilles. Je ne sais pas si Windows prend en charge l'obtention du répertoire de travail actuel via une variable shell ou non.
%cd%
Sous Windows:
CHDIR Affiche le nom ou modifie le répertoire courant.
Sous Linux:
PWD Affiche le nom du répertoire actuel.
Sur la base de la question de suivi (stocker les données dans une variable) dans les commentaires du post chdir, je parie qu'il veut stocker le chemin actuel pour le restaurer après avoir changé de répertoire.
L'utilisateur d'origine devrait regarder "pushd", qui change de répertoire et pousse le répertoire actuel sur une pile qui peut être restaurée avec un "popd". Sur tout shell cmd Windows moderne, c'est la voie à suivre lors de la création de fichiers batch.
Si vous avez vraiment besoin de saisir le chemin actuel, les shells cmd modernes ont également une variable% CD% que vous pouvez facilement ranger dans une autre variable pour référence.
Créez un .bat
fichier sous System32
, appelons-le, copypath.bat
la commande pour copier le chemin actuel pourrait être :
echo %cd% | clip
Explication:
%cd%
vous donnera le chemin actuel
CLIP
Description:
Redirects output of command line tools to the Windows clipboard.
This text output can then be pasted into other programs.
Parameter List:
/? Displays this help message.
Examples:
DIR | CLIP Places a copy of the current directory
listing into the Windows clipboard.
CLIP < README.TXT Places a copy of the text from readme.txt
on to the Windows clipboard.
Maintenant copyclip
est disponible de partout.
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%
Mais, bien sûr , la réponse de gmaran23 est la plus facile.
tokens=*
correctifs.
Dans une invite de commande Windows, chdir
ou cd
affichera le chemin complet du répertoire de travail actuel dans la console.
Si nous voulons copier le chemin alors nous pouvons utiliser: cd | clip
.
Sous Windows, saisissez cd
le chemin de travail actuel.
Sous Linux, pwd
pour le chemin de travail actuel.