Vous devez exécuter les deux commandes dans PowerShell, car PowerShell est plus que capable de manipuler des variables d'environnement.
C'est à dire:
$dow = (get-date).dayofweek
[Environment]::SetEnvironmentVariable("DOW", $dow, "Machine")
ou
[Environment]::SetEnvironmentVariable("DOW", $dow, "User")
En passant, votre script ne fonctionne pas car tout ce que vous obtenez est le code de retour PowerShell, pas les données qu'il génère. Il y a peut-être un moyen de le faire fonctionner, mais c'est finalement inutile par rapport à un simple script PowerShell.
Pour être complet, voici un bel article de Microsoft sur PowerShell et les variables environnementales:
Création et modification de variables d'environnement
Mise à jour: après avoir examiné cette solution avec @ syneticon-dj dans le chat, il semble que le problème que vous rencontrez avec cette méthode est qu'une invite de commande doit être rechargée avant de refléter les modifications des variables d'environnement qui se sont produites en externe.
Vous n'avez pas fourni beaucoup de détails sur ce que vous faites, mais si c'est la seule raison pour laquelle vous lancez PowerShell, alors je vous suggère de revoir votre façon de faire.
Votre processus entier utilise-t-il PowerShell ou avez-vous envisagé d'utiliser des tâches planifiées à la place? Vous pouvez planifier des tâches en fonction du jour de la semaine.