Один із способів, що я можу придумати, - це використовувати інші змінні середовища для зберігання часткових шляхів; наприклад, якщо у вас є
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1;
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2;
тоді ви можете створити нову змінну середовища, наприклад
SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places
після якого стають твої вихідні шляхи
%P1%\subdir1;
%P1%\subdir2;
РЕДАКТУВАННЯ: Ще одним варіантом є створення bin
каталогу, який містить .bat
файли, які вказують на відповідні .exe
файли.
EDIT 2: У коментарі Бена Войта до іншої відповіді зазначається, що використання інших змінних середовища, як пропонується, може не зменшити тривалість, %PATH%
оскільки вони будуть розширені до зберігання. Це може бути правдою, і я цього не перевіряв. Ще одним варіантом є використання форм 8dot3 для довших імен каталогів, наприклад, C:\Program Files
як правило, еквівалентно C:\PROGRA~1
. Ви можете використовувати dir /x
для перегляду коротших імен.
EDIT 3: Цей простий тест змушує мене повірити, що Бен Фогт має рацію.
set test1=hello
set test2=%test1%hello
set test1=bye
echo %test2%
Наприкінці цього ви бачите вихід, hellohello
а не результат byehello
.
EDIT 4: Якщо ви вирішите використовувати пакетні файли для усунення певних шляхів %PATH%
, ви можете бути стурбовані тим, як передавати аргументи із свого пакетного файлу у свій виконуваний файл, щоб процес був прозорим (тобто ви не помітите жодної різниці між викликом пакетного файлу і викликом виконуваного файлу). У мене немало досвіду написання пакетних файлів, але це, здається, працює добре.
@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%
Як правило, вам слід бути обережними щодо запуску пакетних файлів з Інтернету, оскільки ви можете робити всілякі речі з пакетними файлами, такими як форматування вашого жорсткого диска. Якщо ви не довіряєте коду вище (який я написав), ви можете перевірити його, замінивши рядок
%actualdir%\%actualfile% %args%
з
echo %actualdir%\%actualfile% %args%
В ідеалі ви повинні точно знати, що робить кожен рядок, перш ніж запускати його.