Oto mój własny folder programu na moim dysku USB:
Program\
run.bat
bin\
config.ini
Iris.exe
library.dll
etc.
Chciałbym run.bat
zacząć używaćIris.exe
Nie mogę tego użyć: F:/Program/bin/Iris.exe
jak skrót, bo czasami nie dołącza się jako dysk F:
( np. E:
Lub G:
)
Co muszę napisać w pliku bat, aby działał niezależnie od litery dysku?
Próbowałem tego w pliku BAT:
"\bin\Iris.exe"
Ale to nie działa.
batch-file
cmd
relative-path
drive
user2083037
źródło
źródło
C:\myDir\\bin\Iris.exe
(zwróć uwagę na podwójny ukośnik odwrotny). To nadal działa, ale pozostawienie ukośnika odwrotnego przed bin wydaje się być „czystsze”? ->%~dp0bin\Iris.exe
.%~dp0
na końcu będzie zawsze znajdował się ukośnik odwrotny, obie instrukcje będą działać. W przeciwnym razie wariant z dodatkowym odwrotnym ukośnikiem jest wariantem bezpieczniejszym."%~dp0\bin\Iris.exe"
) jako ścieżka miała spacje w jej :) Wystarczy być naprawdę pewien, że to działa na każdym komputerze.SET "scriptdir=%~dp0"
następnym wierszu znajduje się ukośnik odwrotnyIF NOT "%scriptdir:~-1%"=="\" SET "scriptdir=%scriptdir%\"
. Widziałem incydenty, w których podwójny lewy ukośnik w środku ścieżki łamie oprogramowanie.Możesz uzyskać wszystkie wymagane właściwości pliku, korzystając z poniższego kodu:
źródło
Odkryłem, że
%CD%
podaje ścieżkę, z której został wywołany skrypt, a nie ścieżkę skryptu, jednak%~dp0
ścieżkę samego skryptu.źródło
Powinieneś móc korzystać z bieżącego katalogu
źródło
Program
, stanie się to po dwukrotnym kliknięciurun.bat
w eksploratorze.%CD%
to katalog bieżący%~dp0
jest katalogiem samego pliku wsadowegoalbo
bin\Iris.exe
(bez wiodącego ukośnika - ponieważ oznacza to, że zacznij od początku)lub
\Program\bin\Iris.exe
(pełna ścieżka)źródło
\Program
- czy tak nie jest? Możesz to pokazać za pomocą prostegocd
polecenia w wierszu, zanim spróbujesz uruchomićrun.bat
.