Aqui está a minha própria pasta de programa na minha unidade USB:
Program\
run.bat
bin\
config.ini
Iris.exe
library.dll
etc.
Eu gostaria de usar run.bat
para começar Iris.exe
Não posso usar isso: F:/Program/bin/Iris.exe
como um atalho, porque às vezes ele não se conecta como unidade F:
( por exemplo, E:
ou G:
)
O que preciso escrever no arquivo bat para funcionar independentemente da letra da unidade?
Eu tentei isso no arquivo BAT:
"\bin\Iris.exe"
Mas não funciona.
batch-file
cmd
relative-path
drive
user2083037
fonte
fonte
C:\myDir\\bin\Iris.exe
(observe a barra invertida dupla). Isso ainda funciona, mas deixando de fora a barra invertida antes que o bin pareça estar "mais limpo"? ->%~dp0bin\Iris.exe
.%~dp0
sempre haverá uma barra invertida à direita, as duas instruções funcionarão. Caso contrário, aquele com a barra invertida adicional é a variante mais segura."%~dp0\bin\Iris.exe"
) como o caminho tinha um espaço em branco na mesma :) Só para ter realmente certeza de que funciona em todos os computadores.SET "scriptdir=%~dp0"
e na próxima linhaIF NOT "%scriptdir:~-1%"=="\" SET "scriptdir=%scriptdir%\"
. Vi incidentes em que a barra invertida dupla no meio do caminho quebra o software.Você pode obter todas as propriedades de arquivo necessárias usando o código abaixo:
fonte
Eu descobri que
%CD%
fornece o caminho do qual o script foi chamado e não o caminho do script, no entanto,%~dp0
fornecerá o caminho do próprio script.fonte
Você deve poder usar o diretório atual
fonte
Program
, isso acontece quando você clica duas vezesrun.bat
no explorer.%CD%
é o diretório atual%~dp0
é o diretório do próprio arquivo em lotesquer
bin\Iris.exe
(sem barra inicial - porque isso significa começar desde a raiz)ou
\Program\bin\Iris.exe
(caminho completo)fonte
\Program
- não é esse o caso? Você pode mostrar que com um simplescd
comando na linha antes de tentar executar o .exerun.bat
.