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?

È stato utile?

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.

inserisci qui la descrizione dell'immagine

Update: se si esegue un SET var =% cd% anziché SET var =% cd% , di seguito è riportato ciò che accade. Grazie a jeb.

inserisci qui la descrizione dell'immagine

Catturare la directory corrente da un file batch

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

Il comando

è 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top