Salah satu cara yang bisa saya pikirkan adalah menggunakan variabel lingkungan lain untuk menyimpan jalur parsial; misalnya, jika Anda punya
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1;
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2;
maka Anda dapat membuat variabel lingkungan baru seperti
SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places
setelah itu jalan awal Anda menjadi
%P1%\subdir1;
%P1%\subdir2;
EDIT: Pilihan lain adalah membuat bin
direktori yang menyimpan .bat
file yang mengarah ke .exe
file yang sesuai .
EDIT 2: Komentar Ben Voigt untuk jawaban lain menyebutkan bahwa menggunakan variabel lingkungan lain seperti yang disarankan mungkin tidak mengurangi panjangnya %PATH%
karena mereka akan diperluas sebelum disimpan. Ini mungkin benar dan saya belum mengujinya. Pilihan lain adalah menggunakan formulir 8dot3 untuk nama direktori yang lebih panjang, misalnya C:\Program Files
biasanya sama dengan C:\PROGRA~1
. Anda dapat menggunakan dir /x
untuk melihat nama yang lebih pendek.
EDIT 3: Tes sederhana ini membuat saya percaya Ben Voigt benar.
set test1=hello
set test2=%test1%hello
set test1=bye
echo %test2%
Di akhir ini, Anda akan melihat keluaran hellohello
daripada byehello
.
EDIT 4: Jika Anda memutuskan untuk menggunakan file batch untuk menghilangkan jalur tertentu dari %PATH%
, Anda mungkin khawatir tentang cara menyampaikan argumen dari file batch Anda ke file yang dapat dieksekusi sehingga prosesnya transparan (yaitu, Anda tidak akan melihat perbedaan apa pun antara memanggil file batch dan memanggil executable). Saya tidak memiliki banyak pengalaman menulis file batch, tetapi ini tampaknya berfungsi dengan baik.
@echo off
rem This batch file points to an executable of the same name
rem that is located in another directory. Specify the directory
rem here:
set actualdir=c:\this_is\an_example_path
rem You do not need to change anything that follows.
set actualfile=%0
set args=%1
:beginloop
if "%1" == "" goto endloop
shift
set args=%args% %1
goto beginloop
:endloop
%actualdir%\%actualfile% %args%
Sebagai aturan umum, Anda harus berhati-hati dalam menjalankan file batch dari internet, karena Anda dapat melakukan segala macam hal dengan file batch seperti memformat hard drive Anda. Jika Anda tidak mempercayai kode di atas (yang saya tulis), Anda dapat mengujinya dengan mengganti baris
%actualdir%\%actualfile% %args%
dengan
echo %actualdir%\%actualfile% %args%
Idealnya Anda harus tahu persis apa yang dilakukan setiap baris sebelum Anda menjalankannya.