Algo estranho aconteceu comigo quando eu testei isso.
dir "C:\Program Files\^%temp^%"
Por algum motivo, parece que as citações interferem no escape. Se eu escapar das citações também, funciona.
dir ^"C:\Program Files\^%temp^%^"
Parece feio, mas funciona.
Se não houver espaços no caminho, as cotações não serão necessárias.