Uma maneira que consigo pensar é usar outras variáveis de ambiente para armazenar caminhos parciais; por exemplo, se você tiver
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir1;
C:\this_is_a\long_path\that_appears\in_multiple_places\subdir2;
então você pode criar uma nova variável de ambiente, como
SET P1=C:\this_is_a\long_path\that_appears\in_multiple_places
após o qual seus caminhos originais se tornam
%P1%\subdir1;
%P1%\subdir2;
EDIT: Outra opção é criar um bin
diretório que contém .bat
arquivos que apontam para os .exe
arquivos apropriados .
EDIT 2: O comentário de Ben Voigt a outra resposta menciona que o uso de outras variáveis de ambiente conforme sugerido pode não reduzir o comprimento de %PATH%
porque elas seriam expandidas antes de serem armazenadas. Isso pode ser verdade e eu não testei isso. Outra opção, porém, é usar formulários 8dot3 para nomes de diretório mais longos, por exemplo, C:\Program Files
é normalmente equivalente a C:\PROGRA~1
. Você pode usar dir /x
para ver os nomes mais curtos.
EDIT 3: Este teste simples me leva a acreditar que Ben Voigt está certo.
set test1=hello
set test2=%test1%hello
set test1=bye
echo %test2%
No final disso, você verá a saída em hellohello
vez de byehello
.
EDIT 4: No caso de você decidir usar arquivos em lote para eliminar certos caminhos %PATH%
, você pode se preocupar em como passar os argumentos de seu arquivo em lote para o executável de forma que o processo seja transparente (ou seja, você não notará nenhuma diferença entre chamar o arquivo em lote e chamar o executável). Não tenho muita experiência em escrever arquivos em lote, mas parece funcionar bem.
@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%
Como regra geral, você deve ter cuidado ao executar arquivos em lote da Internet, uma vez que pode fazer todo tipo de coisa com arquivos em lote, como formatar seu disco rígido. Se você não confiar no código acima (que escrevi), você pode testá-lo substituindo a linha
%actualdir%\%actualfile% %args%
com
echo %actualdir%\%actualfile% %args%
Idealmente, você deve saber exatamente o que cada linha faz antes de executá-la.