Semelhante à resposta do MaddHackers, apenas mais compacta.
echo %path%|find /i "%np%">nul || set path=%path%;%np%
%np%
é o seu novo caminho, é claro que você pode usar literais.
O que ele faz: echo %path%|find /i "%np%">nul
pesquisa o caminho existente para uma string, descartando a saída. ||
significa executar com falha, então isso significa:
Caminho de pesquisa para a string a ser adicionada e, se não encontrada, adicione-a.
Editar: geralmente não é necessário citar os caminhos, mesmo aqueles que contêm espaços, mas se você quiser citá-los , esta versão funcionará com caminhos duplos entre aspas:
echo %path%|find /i "%np:"=%">nul || set path=%path%;%np%
Editar: alterado findstr /i /c:
para find /i
como findstr
pode interpretar incorretamente algumas seqüências como observado por KubaOber nos comentários