Altere o diretório atual para o diretório de arquivos em lote

6

Eu tenho um arquivo bat nas janelas que executam uma operação procdump . O problema com o arquivo de lote é que eu preciso de um cd para o diretório do arquivo de lote antes de executar o trabalho, ou então o script não funcionará.

Como mudar para o diretório atual de arquivos em lote?

Eu tentei o seguinte código no meu procdump.bat :

cd "%~dp"
procdump -h devenv.exe mydump.txt

Mas falhou, a mensagem de erro é:

The following usage of the path operator in batch-parameter substitution is invalid: %~dp"

For valid formats type CALL /? or FOR /?

Editar: A resposta fornecida está funcionando, mas há apenas uma captura: se meu diretório atual for diferente do diretório de arquivos em lote, eu obteria um "O sistema não pode localizar o caminho especificado". Alguém tem alguma ideia?

    
por Graviton 18.12.2009 / 14:12

2 respostas

11

Ok, acho que encontrei aqui , o que você quer dizer com %~dp .

Acho que o que você realmente quer fazer é isso:

cd /D "%~dp0"

(!) Mas observe que isso ainda não lhe dará o comportamento correto quando você estiver tentando executar o lote enquanto o diretório atual estiver em outra unidade, pois cd não altera a unidade ativa.

Editar : aparentemente (obrigado @ Yoopergeek ) você pode adicionar o parâmetro /D ao comando cd para permitir que ele também altere a unidade ativa.

    
por 18.12.2009 / 15:35
3

Eu deixo um comentário para a resposta de fretje, mas evidentemente não posso ???

De qualquer forma, em relação à nota:
Mas note que isso ainda não lhe dará o comportamento correto quando você estiver tentando executar o lote enquanto o diretório atual estiver em outra unidade, pois o cd não muda o drive ativo.

Use a opção /D no comando do CD e o CD alterará a unidade ativa.

    
por 18.12.2009 / 15:43