Não coloque uma barra invertida no final de %NEW_PATH%
.
Se você recebeu uma entrada aleatória para começar, em vez de as coisas que você controla, siga um destes procedimentos:
-
Deixe de fora as aspas de fechamento. Isso funciona em alguns casos:
> setx foo "bar baz > echo %foo% bar baz
Mas não funciona tão bem em outras pessoas:
> setx foo "Some stuff "with" embeddded quotes > echo %foo% Some stuff with embeddded quotes
No entanto, você já tem esse problema para começar, então o que você fez lá foi perigoso na melhor das hipóteses, já que isso destruiria os caminhos citados (o que você precisa se o seu caminho incluir um ponto-e-vírgula) .
O que nos leva à seguinte opção:
-
Escaneie corretamente o que estiver no comando:
set NEW_PATH=C:\I\Hate\User\Dirs\In\The\Root\ rem Note the extra quotation marks; we're constructing the complete rem argument to setx here. set NEW_PATH_VAR="%PATH%;%NEW_PATH%" rem The great escape set NEW_PATH_VAR=%NEW_PATH_VAR:"=\"% setx PATH %NEW_PATH_VAR%