Para fazer isso sem um arquivo temporário, você pode fazer:
@ECHO off
FOR /F %%i in ('powershell.exe -noprofile "(get-date).DayOfWeek"') DO SET dow=%%i
ECHO Day of week %dow%
PAUSE
do prompt de comando, remova o duplo %%:
FOR /F %i in ('powershell.exe -noprofile "(get-date).DayOfWeek"') DO SET dow=%i
Usar -noprofile
fará com que seja mais rápido se você tiver um perfil configurado para o PowerShell.