Em vez de adicionar ao caminho, muitas vezes escrevo um arquivo em lote curto que define variáveis de ambiente para aplicativos especiais que estariam desnecessariamente o caminho (ou adicionam variáveis de ambiente conflitantes).
Aqui está um exemplo ( run-winvile.bat
) que dá acesso à linha de comando a um programa GUI que não está em PATH
. Ele usa setlocal
para limitar o escopo do ambiente alterado:
@echo off
setlocal
set WINVILE_DIR="C:\Program Files (x86)\VI Like Emacs\bin"
cd %WINVILE_DIR%
IF ERRORLEVEL 1 goto :finish
set WINVILE_EXE=WinVile-wide-ole.exe
if exist %WINVILE_EXE% start %WINVILE_EXE% %1 %2 %3 %4 %5 %6 %7 %8 %9
:finish
endlocal
Este exemplo elimina alguns nomes conflitantes no PATH
:
@echo off
setlocal
rem trim path to get rid of cygwin
set PATH=C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server0\DTS\Binn\;C:\com
rem add PERL for vile's builds
set PATH=%PATH%;c:\perl.8.5\bin;c:\perl.8.5\bin\mswin32-x86-multi-thread
call "c:\program files (x86)\microsoft visual studio 9.0\vc/vcvarsall.bat" %1
shift
run-winvile %*
endlocal