Vous devriez exécuter les deux commandes dans PowerShell, car PowerShell est plus que capable de manipuler les variables d'environnement.
C'est-à-dire :
$dow = (get-date).dayofweek
[Environment]::SetEnvironmentVariable("DOW", $dow, "Machine")
ou
[Environment]::SetEnvironmentVariable("DOW", $dow, "User")
Au fait, votre script ne fonctionne pas car tout ce que vous obtenez est le code de retour PowerShell, pas les données qu'il produit. Il y a peut-être un moyen de le faire fonctionner, mais c'est finalement inutile par rapport à l'utilisation d'un script PowerShell correct.
Pour être complet, voici un bon article de Microsoft sur PowerShell et les variables environnementales :
Création et modification des variables d'environnement
Mise à jour : Après avoir examiné cette solution avec @syneticon-dj en chat, il semble que le problème que vous rencontrez en utilisant cette méthode est que l'invite de commande doit être rechargée avant qu'elle ne reflète les changements de variables environnementales qui se sont produits en externe.
Vous n'avez pas donné beaucoup de détails sur ce que vous faites, mais si c'est la seule raison pour laquelle vous lancez PowerShell, je vous suggère de revoir votre façon de faire.
Soit vous effectuez l'ensemble de votre processus à l'aide de PowerShell, soit vous avez envisagé d'utiliser plutôt des tâches planifiées ? Vous pouvez planifier des tâches en fonction du jour de la semaine.