O que você realmente precisa é:
set pwd=abc^^^&123
echo %pwd%
Ou:
set "pwd=abc^&123"
echo %pwd%
Explicação:
Como &é um caractere especial, você deve evitá-lo ^, resultando em ^&.
A execução set pwd=abc^&123definirá a variável para o valor abc&123. Depois disso, se echo %pwd%você estiver executando, estará efetivamente executando echo abc&123.
No entanto echo abc&123, não funciona como o esperado, porque &é um caractere especial. Você pode evitar isso adicionando aspas: echo "abc&123"mas sua saída também conterá os caracteres das aspas. Em outras palavras, usar aspas não é exatamente uma solução adequada.
O que você precisa é escapar do &char quando você executa o echocomando:
echo abc^&123
Assim, a variável deve conter o valor abc^&123. Para definir a variável para o valor abc^&123, você precisaria escapar dos caracteres especiais ^e &, resultando em:
set pwd=abc^^^&123