Pergunta

Existe um comando de linha de comando do Windows que eu possa usar para obter o caminho completo para o diretório de trabalho atual?

Além disso, como posso armazenar este caminho dentro de uma variável usada em um arquivo de lote?

Foi útil?

Solução

Use cd sem argumentos, se você estiver usando o shell diretamente ou %cd% se você quiser usá-lo em um arquivo de lote (ele se comporta como uma variável de ambiente).

Outras dicas

Você pode definir uma variável lote / environment da seguinte forma:

SET var=%cd%
ECHO %var%

imagem amostra de um cmd.exe Windows 7 x64.

enter descrição da imagem aqui

Atualização: se você fizer um SET var = %cd% vez de SET var=%cd%, abaixo é o que acontece. Graças à jeb.

enter descrição da imagem aqui

Capturar o diretório atual de um arquivo de lote

cito a ajuda do Windows para o 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 %CD% - expands to the current directory string. parte.

No Unix?

pwd

Isso sempre funcionou para mim:

SET CurrentDir="%~dp0"

ECHO The current file path this bat file is executing in is the following:

ECHO %CurrentDir%

Pause

Para o Windows podemos usar

cd

e para Linux

pwd

comando está lá.

Para o Windows, cd por si só irá mostrar-lhe o diretório de trabalho atual.

Para UNIX e sistemas workalike, pwd irá executar a mesma tarefa. Você também pode usar a variável de shell $PWD sob algumas conchas. Não estou certo se suporta Windows obter o diretório de trabalho atual através de uma variável shell ou não.

No Windows:

CHDIR Exibe o nome ou altera o diretório atual.

No Linux:

PWD Exibe o nome do diretório atual.

Com base no acompanhamento de interrogação (armazenar os dados em uma variável) nos comentários para o pós chdir Aposto que ele quer armazenar o caminho atual para restaurá-la após changeing diretórios.

O usuário original deve olhar para "pushd", que muda diretório e empurra o atual em uma pilha que pode ser restaurado com um "popd". Em qualquer Windows moderno Shell CMD que é o caminho a percorrer ao fazer arquivos em lote.

Se você realmente precisa para pegar o caminho atual, em seguida, modernos conchas cmd também têm uma% variável% CD que você pode facilmente coisas fora em outra variável para referência.

@for /f "usebackq" %%x in (`chdir`) do set var=%%x
@echo "The currenct directory is: %var%"

Mas, é claro , a resposta de gmaran23 é o mais fácil um.

Crie um arquivo .bat sob System32, vamos nomeá-lo copypath.bat o comando para copiar caminho atual poderia ser :

echo %cd% | clip

Explicação:
%cd% lhe dará caminho atual

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.

Agora copyclip está disponível em todos os lugares.

Em um comando do Windows rápida, chdir ou cd irá imprimir o caminho completo do diretório de trabalho atual no console.

Se queremos copiar o caminho então podemos usar:. cd | clip

No Windows, tipo cd para o caminho de trabalho atual.

No Linux, pwd para o caminho de trabalho atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top