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