È necessario eseguire entrambi i comandi in PowerShell poiché PowerShell è più che in grado di manipolare le variabili ambientali.
Vale a dire:
$dow = (get-date).dayofweek
[Environment]::SetEnvironmentVariable("DOW", $dow, "Machine")
o
[Environment]::SetEnvironmentVariable("DOW", $dow, "User")
A proposito, il tuo script non funziona perché tutto ciò che ottieni è il codice di ritorno di PowerShell, non i dati che produce. Potrebbe esserci un modo per farlo funzionare, ma alla fine è inutile rispetto al semplice utilizzo di uno script PowerShell corretto.
Per completezza, ecco un bell'articolo di Microsoft su PowerShell e variabili ambientali:
Creazione e modifica di variabili d'ambiente
Aggiornamento: dopo aver esaminato questa soluzione con @ syneticon-dj in chat, sembra che il problema che si presenta usando questo metodo sia che un prompt dei comandi deve essere ricaricato prima che rifletta i cambiamenti nelle variabili ambientali che sono avvenuti esternamente.
Non hai fornito molti dettagli su ciò che stai facendo, ma se questa è l'unica ragione per cui stai lanciando PowerShell, il mio suggerimento reale potrebbe rivedere come stai facendo le cose.
O l'intero processo con PowerShell o hai preso in considerazione l'utilizzo di attività pianificate? È possibile pianificare le attività in base al giorno della settimana.