Obter arquivo em lote para executar em relação à pasta real, não atalho


8

Criei alguns arquivos em lotes que movem os arquivos em relação à pasta em que o arquivo está.

Adicionei a pasta à minha barra de tarefas usando as barras de ferramentas => nova barra de ferramentas ..., mas agora quando executo os arquivos em lotes, a posição inicial é Meus documentos (U :), não o local real dos arquivos em lotes. Existe alguma maneira de fazê-lo usar o caminho real?

Respostas:


10

Coloque o seguinte na parte superior do seu arquivo em lotes:

CD /D %~dp0

Explicação:

  • A /Dopção informa CDpara alterar a unidade atual e o diretório atual de uma unidade.
  • %0 é o nome do arquivo em lote
  • O ~diz que queremos usar alguns modificadores
  • d expande para letra da unidade.
  • p expande para um caminho.

O mesmo %~dp0ocorre com o diretório em que o arquivo em lotes reside.


O CD funciona perfeitamente, mas não altera a designação da unidade; portanto, o script ainda tenta executar em U: \
ck.

Adicionou% ~ d0 para alterar a unidade seguindo sua explicação.
ck.

@ck - Esqueceu-se das unidades, desculpe. Provavelmente é mais fácil de usar CD /D. Editou a resposta para refletir isso.
Dave Webb

podemos usar em PUSHDvez deCD /D
Tuan Anh Hoang-Vu
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.