Jednym ze sposobów, które przychodzą mi do głowy, jest użycie innych zmiennych środowiskowych do przechowywania częściowych ścieżek; na przykład, jeśli masz
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1;
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2;
następnie możesz utworzyć nową zmienną środowiskową, taką jak
SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places
po którym stają się twoje oryginalne ścieżki
%P1%\subdir1;
%P1%\subdir2;
EDYCJA: Inną opcją jest utworzenie bin
katalogu zawierającego .bat
pliki wskazujące na odpowiednie .exe
pliki.
EDYCJA 2: Komentarz Bena Voigta do innej odpowiedzi wspomina, że użycie innych zmiennych środowiskowych zgodnie z sugestią może nie skrócić długości, %PATH%
ponieważ zostałyby rozwinięte przed zapisaniem. Może to prawda i nie testowałem tego. Inną opcją jest jednak użycie formularzy 8dot3 dla dłuższych nazw katalogów, na przykład C:\Program Files
zazwyczaj jest to odpowiednik C:\PROGRA~1
. Możesz użyć, dir /x
aby zobaczyć krótsze nazwy.
EDYCJA 3: Ten prosty test prowadzi mnie do przekonania, że Ben Voigt ma rację.
set test1=hello
set test2=%test1%hello
set test1=bye
echo %test2%
Na końcu zobaczysz hellohello
raczej wyjście niż byehello
.
EDYCJA 4: W przypadku, gdy zdecydujesz się użyć plików wsadowych do wyeliminowania niektórych ścieżek %PATH%
, możesz martwić się, jak przekazać argumenty z pliku wsadowego do pliku wykonywalnego, aby proces był przezroczysty (tj. Nie zauważysz żadnej różnicy między wywołaniem pliku wsadowego a wywołaniem pliku wykonywalnego). Nie mam dużego doświadczenia w pisaniu plików wsadowych, ale wydaje się, że działa dobrze.
@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%
Zasadniczo należy zachować ostrożność podczas uruchamiania plików wsadowych z Internetu, ponieważ z plikami wsadowymi można wykonywać różne czynności, takie jak formatowanie dysku twardego. Jeśli nie ufasz powyższemu kodowi (który napisałem), możesz go przetestować, zastępując wiersz
%actualdir%\%actualfile% %args%
z
echo %actualdir%\%actualfile% %args%
Idealnie byłoby, gdybyś dokładnie wiedział, co robi każda linia, zanim ją uruchomisz.