Esiste un comando da riga di comando di Windows che posso utilizzare per ottenere il percorso completo della directory di lavoro corrente?
Inoltre, come posso memorizzare questo percorso all'interno di una variabile utilizzata in un file batch?
Esiste un comando da riga di comando di Windows che posso utilizzare per ottenere il percorso completo della directory di lavoro corrente?
Inoltre, come posso memorizzare questo percorso all'interno di una variabile utilizzata in un file batch?
Risposte:
Utilizzare cd
senza argomenti se si utilizza direttamente la shell o %cd%
se si desidera utilizzarla in un file batch (si comporta come una variabile di ambiente).
È possibile impostare una variabile batch / ambiente come segue:
SET var=%cd%
ECHO %var%
screenshot di esempio da un cmd.exe di Windows 7 x64.
Aggiornamento: se si esegue unSET var = %cd%
invece diSET var=%cd%
, di seguito è quello che succede. Grazie a Jeb.
SET var = %cd%
mettere il valore nella variabile var<space>
non in var
. Dovresti evitare spazi nel comando SET
Cita la guida di Windows per il set
comando ( set /?
):
Se le estensioni di comando sono abilitate, ci sono diverse dinamiche variabili di ambiente che possono essere espanse ma che non vengono visualizzate l'elenco delle variabili visualizzate da SET. Questi valori variabili sono calcolato dinamicamente ogni volta che il valore della variabile viene espanso. Se l'utente definisce esplicitamente una variabile con uno di questi nomi, allora tale definizione sostituirà quella dinamica descritta di seguito: % CD%: si espande nella stringa di directory corrente. % DATE%: si espande alla data corrente utilizzando lo stesso formato del comando DATE. % TIME%: si espande all'ora corrente utilizzando lo stesso formato del comando TIME. % RANDOM%: si espande in un numero decimale casuale compreso tra 0 e 32767. % ERRORLEVEL%: si espande al valore ERRORLEVEL corrente % CMDEXTVERSION%: si espande alle estensioni correnti del processore di comando numero della versione. % CMDCMDLINE%: si espande alla riga di comando originale che ha invocato il file Processore di comando.
Nota la %CD% - expands to the current directory string.
parte.
Su Unix?
pwd
Questo ha sempre funzionato per me:
SET CurrentDir="%~dp0"
ECHO The current file path this bat file is executing in is the following:
ECHO %CurrentDir%
Pause
Per Windows, cd
da solo ti mostrerà la directory di lavoro corrente.
Per i sistemi UNIX e workalike, pwd
eseguirà la stessa attività. Puoi anche usare la $PWD
variabile shell sotto alcune shell. Non sono sicuro se Windows supporti il recupero della directory di lavoro corrente tramite una variabile shell o meno.
%cd%
Su Windows:
CHDIR Visualizza il nome o modifica la directory corrente.
In Linux:
PWD Visualizza il nome della directory corrente.
Sulla base della domanda di follow-up (memorizzare i dati in una variabile) nei commenti al post chdir sto scommettendo che vuole memorizzare il percorso corrente per ripristinarlo dopo aver cambiato directory.
L'utente originale dovrebbe guardare "pushd", che cambia directory e inserisce quello corrente su uno stack che può essere ripristinato con un "popd". Su qualsiasi moderna shell cmd di Windows che è la strada da percorrere quando si creano file batch.
Se hai davvero bisogno di afferrare il percorso corrente, le moderne shell cmd hanno anche una variabile% CD% che puoi facilmente riporre in un'altra variabile come riferimento.
Crea un .bat
file sotto System32
, chiamiamolo copypath.bat
il comando per copiare il percorso corrente potrebbe essere :
echo %cd% | clip
Spiegazione:
%cd%
ti darà il percorso attuale
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.
Ora copyclip
è disponibile ovunque.
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%
Ma, naturalmente , la risposta di gmaran23 è molto più semplice.
tokens=*
correzioni.
In un prompt dei comandi di Windows, chdir
o cd
stamperà il percorso completo della directory di lavoro corrente nella console.
Se vogliamo copiare il percorso allora possiamo usare: cd | clip
.
Su Windows, digitare cd
il percorso corrente funzionante.
Su Linux, pwd
per l'attuale percorso di lavoro.