Powinieneś uruchomić oba polecenia w PowerShell, ponieważ PowerShell jest więcej niż zdolny do manipulowania zmiennymi środowiskowymi.
To znaczy:
$dow = (get-date).dayofweek
[Environment]::SetEnvironmentVariable("DOW", $dow, "Machine")
lub
[Environment]::SetEnvironmentVariable("DOW", $dow, "User")
Nawiasem mówiąc, twój skrypt nie działa, ponieważ otrzymujesz tylko kod powrotu PowerShell, a nie generowane przez niego dane. Może istnieć sposób na uruchomienie go, ale jest to ostatecznie bezcelowe w porównaniu z użyciem odpowiedniego skryptu PowerShell.
Dla kompletności, oto miły artykuł od Microsoft na temat PowerShell i zmiennych środowiskowych:
Tworzenie i modyfikowanie zmiennych środowiskowych
Aktualizacja: po sprawdzeniu tego rozwiązania w @ syneticon-dj na czacie, wydaje się, że napotykasz problem przy użyciu tej metody, ponieważ wiersz polecenia musi zostać ponownie załadowany, zanim będzie odzwierciedlał zmiany zmiennych środowiskowych, które miały miejsce na zewnątrz.
Nie podałeś zbyt wielu szczegółów na temat tego, co robisz, ale jeśli jest to jedyny powód, dla którego uruchamiasz PowerShell, to moja rzeczywista sugestia sprawdzi, jak to robisz.
Albo cały proces używasz programu PowerShell, czy zamiast tego rozważasz użycie zaplanowanych zadań? Możesz planować zadania na podstawie dnia tygodnia.