Eu quero criar alguns arquivos em lotes para automatizar um programa.
Minha pergunta é: quando eu crio o arquivo em lotes, qual é o diretório atual? É o diretório em que o arquivo está localizado ou é o mesmo diretório que aparece no prompt de comando ou algo mais?
batch-file
directory
Aaron de Windt
fonte
fonte
%0
poderia dar o nome da sub-rotina atual, mas%~dp0
vai sempre dar o caminho completo para o arquivo de lote execução..cmd
arquivo e executar como administrador,%cd%
forneceC:\WINDOWS\system32
e%~dp0
fornece o diretório do arquivo em lotes com barra final.Ele geralmente é o diretório a partir do qual o arquivo de lote é iniciado, mas se você iniciar o arquivo de lote a partir de um atalho, poderia ser dado um diretório de partida diferente. Além disso, quando você estiver no cmd, e seu diretório atual estiver
c:\dir3
, ainda poderá iniciar o arquivoc:\dir1\dir2\batch.bat
em lotes usando , nesse caso, o diretório atual serác:\dir3
.fonte
Em um arquivo em lotes,% cd% é o comando mais comumente usado para o diretório atual, embora você possa definir sua própria variável:
Então, diga que você estava querendo abrir o Myprog.exe. Se estivesse na mesma pasta, você usaria o comando:
Isso abriria o Myprog da pasta atual.
A outra opção é criar um diretório em C: chamado AutomatePrograms. Em seguida, você transfere seus arquivos para essa pasta e pode abri-los usando o seguinte comando:
fonte
%cd%
é variável; portanto, executar o arquivo em lotes do Windows Explorer como administrador dará oC:\WINDOWS\system32
que quase certamente não é o que você deseja.%~dp0
é mais consistente.Digamos que você estava abrindo um arquivo no seu diretório atual. O comando seria:
Espero ter respondido sua pergunta.
fonte
É o diretório de onde você executa o comando para executar seu arquivo em lotes.
Conforme mencionado nas respostas acima, você pode adicionar o comando abaixo ao seu script para verificar:
fonte
É o diretório a partir do qual você inicia o arquivo em lotes. Por exemplo, se o seu lote está dentro
c:\dir1\dir2
e você fazcd c:\dir3
, então execute o lote, o diretório atual serác:\dir3
.fonte
Apenas meus 2 centavos. O seguinte comando falha se chamado do arquivo em lotes (Windows 7) colocado no pendrive:
Mas isso faz o trabalho:
fonte
%~dp0