Deve (a) não ser quaisquer aspas no caminho do MS-Windows
variável ambiental (comando PATH) ou (b) deve haver aspas em torno da expressão inteira seguindo o (comando SET) . Infelizmente, isso não é muito bem documentado pelo MS, embora eles declarem que, se forem usadas aspas, elas serão incluídas no valor da variável (Referência de linha de comando do Windows XP) .
$ SET BLAH="blah blah(1)"
$ ECHO %BLAH%
"blah blah(1)"
$ SET BLAH=blah blah(1)
$ ECHO %BLAH%
blah blah(1)
Isso pode causar problemas inconsistentes e, portanto, difíceis de diagnosticar. Por exemplo, se o seu caminho incluir "C: \ Python27", sua máquina dirá que "'python' não é reconhecido como um comando interno ou externo, um programa operacional ou um arquivo em lote". quando você tenta executar python. No entanto, algumas bibliotecas podem ainda estarem disponíveis.
Você não precisa "escapar" de espaços ou parênteses. Se você precisar escapar de caracteres especiais, coloque aspas em toda a expressão, incluindo o nome da variável.
SET "PATH=%PATH%;C:\Program Files (x86)\path with special characters"
ou você pode usar parênteses também.
(SET VAR=can't contain ampersand, parentheses, pipe, gt or lt)
Note que as aspas duplas devem vir em pares.
(SET VAR=illegal characters!@#$%^*_-+={}[]\:;""',./?)
echo %VAR%
illegal characters!@#$%*_-+={}[]\:;""',./?
No entanto, provavelmente não existem caracteres que sejam nomes de caminho válidos, o que causaria um problema com o comando SET.