Comando shell di Windows per ottenere il percorso completo della directory corrente?
-
03-07-2019 - |
Domanda
Esiste un comando da riga di comando di Windows che posso usare 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?
Soluzione
Usa cd
senza argomenti se stai usando direttamente la shell, oppure % cd%
se vuoi usarlo in un file batch (si comporta come un variabile di ambiente).
Altri suggerimenti
È possibile impostare una variabile batch / ambiente come segue:
SET var=%cd%
ECHO %var%
screenshot di esempio da un cmd.exe di Windows 7 x64.
Update: se si esegue un SET var =% cd%
anziché SET var =% cd%
, di seguito è riportato ciò che accade. Grazie a jeb.
Cita la guida di Windows per il comando set
( set /?
):
If Command Extensions are enabled, then there are several dynamic environment variables that can be expanded but which don't show up in the list of variables displayed by SET. These variable values are computed dynamically each time the value of the variable is expanded. If the user explicitly defines a variable with one of these names, then that definition will override the dynamic one described below: %CD% - expands to the current directory string. %DATE% - expands to current date using same format as DATE command. %TIME% - expands to current time using same format as TIME command. %RANDOM% - expands to a random decimal number between 0 and 32767. %ERRORLEVEL% - expands to the current ERRORLEVEL value %CMDEXTVERSION% - expands to the current Command Processor Extensions version number. %CMDCMDLINE% - expands to the original command line that invoked the Command Processor.
Nota la parte % CD% - si espande nella stringa di directory corrente.
.
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 possiamo usare
cd
e per Linux
pwd
è lì.
Per Windows, cd
da solo mostrerà la directory di lavoro corrente.
Per i sistemi UNIX e workalike, pwd
eseguirà la stessa attività. Puoi anche usare la variabile shell $ PWD
in alcune shell. Non sono sicuro che Windows supporti il ??recupero della directory di lavoro corrente tramite una variabile shell o meno.
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 di 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 per riferimento.
@for /f "usebackq" %%x in (`chdir`) do set var=%%x
@echo "The currenct directory is: %var%"
Ma, ovviamente , la risposta di gmaran23 è molto più semplice.
Crea un file .bat
in System32
, chiamiamolo copypath.bat
il comando per copiare il percorso corrente potrebbe essere :
echo %cd% | clip
Spiegazione:
% cd%
ti fornirà il percorso corrente
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.
Al 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
per il percorso corrente funzionante.
Su Linux, pwd
per il percorso di lavoro corrente.