You should run both commands in PowerShell as PowerShell is more than capable of manipulating environmental variables.
$dow = (get-date).dayofweek
[Environment]::SetEnvironmentVariable("DOW", $dow, "Machine")
[Environment]::SetEnvironmentVariable("DOW", $dow, "User")
By the way, your script doesn't work because all you're getting is the PowerShell return code, not the data it produces. There may be a way to get it to work, but it's ultimately pointless compared to just using a proper PowerShell script.
For completeness, here is a nice article from Microsoft on PowerShell and environmental variables:
Creating and Modifying Environment Variables
Update: Having reviewed this solution with @syneticon-dj in chat, it appears the issue you face using this method is that a command prompt has to be reloaded before it will reflect changes in environmental variables that have happened externally.
You haven't provided much detail about what it is you're doing, but if this is the only reason you're launching PowerShell, than my actual suggestion would to review how you're doing things.
Either do your whole process using PowerShell or have you considered using scheduled tasks instead? You can schedule tasks based on the day of the week.