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?

raphadko
fonte
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