Вы должны запустить обе команды в PowerShell, поскольку PowerShell более чем способен манипулировать переменными среды.
То есть:
$dow = (get-date).dayofweek
[Environment]::SetEnvironmentVariable("DOW", $dow, "Machine")
или же
[Environment]::SetEnvironmentVariable("DOW", $dow, "User")
Кстати, ваш скрипт не работает, потому что вы получаете только код возврата PowerShell, а не данные, которые он генерирует. Возможно, есть способ заставить его работать, но в конечном счете это бессмысленно по сравнению с использованием только правильного сценария PowerShell.
Для полноты вот хорошая статья от Microsoft по PowerShell и переменным среды:
Создание и изменение переменных среды
Обновление. Изучив это решение с помощью @ syneticon-dj в чате, вы обнаружите, что проблема, с которой вы сталкиваетесь при использовании этого метода, заключается в том, что необходимо перезагрузить командную строку, прежде чем она отразит изменения переменных среды, которые произошли извне.
Вы не предоставили подробных сведений о том, чем вы занимаетесь, но если это единственная причина, по которой вы запускаете PowerShell, то мое реальное предложение - проанализировать, как вы это делаете.
Либо весь ваш процесс использует PowerShell, либо вместо этого вы решили использовать запланированные задачи? Вы можете планировать задачи в зависимости от дня недели.