Ini folder program saya sendiri di drive USB saya:
Program\
run.bat
bin\
config.ini
Iris.exe
library.dll
etc.
Saya ingin menggunakan run.bat
untuk memulai Iris.exe
Saya tidak bisa menggunakan ini: F:/Program/bin/Iris.exe
seperti jalan pintas, karena kadang-kadang tidak dilampirkan sebagai drive F:
( misalnya E:
atau G:
)
Apa yang harus saya tulis di file bat untuk bekerja terlepas dari huruf drive?
Saya mencoba ini di file BAT:
"\bin\Iris.exe"
Tapi itu tidak berhasil.
batch-file
cmd
relative-path
drive
pengguna2083037
sumber
sumber
C:\myDir\\bin\Iris.exe
(perhatikan double-backslash). Ini masih bekerja tetapi meninggalkan backslash sebelum bin tampaknya menjadi "bersih"? ->%~dp0bin\Iris.exe
.%~dp0
akan selalu ada garis miring terbalik kedua pernyataan akan berfungsi. Kalau tidak, yang dengan backslash tambahan adalah varian yang lebih aman."%~dp0\bin\Iris.exe"
) karena path memiliki spasi di dalamnya :) Hanya untuk benar - benar yakin itu bekerja pada setiap komputer.SET "scriptdir=%~dp0"
dan pada baris berikutnyaIF NOT "%scriptdir:~-1%"=="\" SET "scriptdir=%scriptdir%\"
. Saya telah melihat insiden di mana double backslash di tengah jalan merusak perangkat lunak.Anda bisa mendapatkan semua properti file yang diperlukan dengan menggunakan kode di bawah ini:
sumber
Saya telah menemukan bahwa
%CD%
memberi jalan naskah itu dipanggil dan bukan jalan naskah, akan tetapi,%~dp0
memberikan jalan naskah itu sendiri.sumber
Anda harus dapat menggunakan direktori saat ini
sumber
Program
, ini akan terjadi ketika Anda mengklik dua kalirun.bat
dari explorer.%CD%
adalah direktori saat ini%~dp0
adalah direktori file batch itu sendiribaik
bin\Iris.exe
(tanpa garis miring utama - karena itu berarti mulai dari root)atau
\Program\bin\Iris.exe
(jalur penuh)sumber
\Program
- bukankah itu masalahnya? Anda dapat menunjukkannya dengancd
perintah sederhana di baris sebelum Anda mencoba menjalankan .exerun.bat
.