Adicionando a variável de sistema PATH usando um arquivo bat


0

Eu quero executar um arquivo .bat uma vez e adicionar vários valores à minha variável de ambiente de caminho. Estou tendo todos os tipos de problemas com isso. Bem, primeiro, quero que esse arquivo verifique se alguma entrada já está no caminho e inclua apenas se ela não estiver lá. Segundo, alguns caminhos têm espaços neles, e não consigo fazer funcionar, este é o meu arquivo atual:

    @echo off
setlocal EnableDelayedExpansion

set list= "d:\Dropbox\Apps\Web\php\\"
set list=%list%;"d:\Dropbox\Apps\Web\php\ext"
set list=%list%;"d:\Dropbox\Apps\Web\php\imagick"
set list=%list%;"d:\Dropbox\Apps\Web\node.js"
set list=%list%;"d:\Dropbox\Apps\Web\PortableGit\cmd"
set list=%list%;"d:\Dropbox\Apps\Web\python"
set list=%list%;"d:\Dropbox\Apps\\[ Tools \]\7zip"
set list=%list%;"d:\Dropbox\Apps\\[ Tools \]\youtube-dl"
set list=%list%;"d:\Dropbox\Apps\\[ Tools \]\y33be-dl"

:: iterate over the paths list
for %%a in (%list%) do (

    echo %%a

    Echo.!PATH! | findstr /c:%%a>nul && (
        Echo.TRUE
    ) || (
        Echo.FALSE
        setx PATH /m "%PATH%;%%a"
    )

)



@echo on

Alguma idéia de como fazer isso funcionar?


1
set não tem nada para espaços. Leva tudo depois do =, incluindo espaços, então apenas use espaços normais, não escape deles no nível definido. Você tem que escapar deles em outros lugares embora.
LPChip

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.