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 esse caminho dentro de uma variável usada em um arquivo em lotes?
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 esse caminho dentro de uma variável usada em um arquivo em lotes?
Respostas:
Use cd
sem argumentos se estiver usando o shell diretamente ou %cd%
se desejar usá-lo em um arquivo em lotes (ele se comporta como uma variável de ambiente).
Você pode definir uma variável de lote / ambiente da seguinte maneira:
SET var=%cd%
ECHO %var%
amostra de captura de tela de um Windows 7 x64 cmd.exe.
Atualização: se você fizer um emSET var = %cd%
vez deSET var=%cd%
, abaixo está o que acontece. Graças a jeb.
SET var = %cd%
colocar o valor na variável var<space>
não inserida var
. Você deve evitar espaços no comando SET
Cite a ajuda do Windows para o set
comando ( set /?
):
Se as extensões de comando estiverem ativadas, haverá várias opções dinâmicas. variáveis de ambiente que podem ser expandidas, mas que não aparecem no a lista de variáveis exibida por SET. Esses valores variáveis são calculado dinamicamente cada vez que o valor da variável é expandido. Se o usuário definir explicitamente uma variável com um desses nomes, então essa definição substituirá a dinâmica descrita abaixo: % CD% - expande para a cadeia de diretórios atual. % DATE% - expande para a data atual usando o mesmo formato do comando DATE. % TIME% - expande para a hora atual usando o mesmo formato do comando TIME. % RANDOM% - expande para um número decimal aleatório entre 0 e 32767. % ERRORLEVEL% - expande para o valor atual de ERRORLEVEL % CMDEXTVERSION% - expande para as extensões atuais de processador de comando número da versão. % CMDCMDLINE% - expande para a linha de comando original que chamou o Processador de comando.
Observe a %CD% - expands to the current directory string.
parte.
No Unix?
pwd
Isto 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 Windows, cd
por si só, mostrará o diretório de trabalho atual.
Para UNIX e sistemas semelhantes, pwd
executará a mesma tarefa. Você também pode usar a $PWD
variável shell sob algumas conchas. Não tenho certeza se o Windows oferece suporte à obtenção do diretório de trabalho atual por meio de uma variável de shell ou não.
%cd%
No Windows:
CHDIR Exibe o nome ou altera o diretório atual.
No Linux:
PWD Exibe o nome do diretório atual.
Com base na pergunta de acompanhamento (armazene os dados em uma variável) nos comentários da postagem do chdir, aposto que ele deseja armazenar o caminho atual para restaurá-lo após alterar os diretórios.
O usuário original deve consultar "pushd", que altera o diretório e coloca o atual em uma pilha que pode ser restaurada com um "popd". Em qualquer shell cmd moderno do Windows, esse é o caminho a seguir ao criar arquivos em lote.
Se você realmente precisar pegar o caminho atual, os shells modernos do cmd também terão uma variável% CD% que poderá ser facilmente armazenada em outra variável para referência.
Criar um .bat
em arquivo System32
, vamos nomeá-lo copypath.bat
do comando para copiar caminho atual poderia ser :
echo %cd% | clip
Explicação:
%cd%
fornecerá o 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 qualquer lugar.
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%
Mas, é claro , a resposta de gmaran23 é a mais fácil.
tokens=*
corrige isso.
Em um prompt de comando do Windows, chdir
ou cd
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, digite cd
o caminho atual de trabalho.
No Linux, pwd
para o caminho de trabalho atual.