'Subprocess $Env:Path python: The filename, directory name, or volume label syntax is incorrect
I am trying to change the windows environment variables, but I am having trouble doing so.
Before I tried to use os.environ() I tried out using powershell commands and adding a string to $Env:Path which worked, but removing it with:
$env:Path = ($env:Path.Split(';') | Where-Object -FilterScript {$_ -ne $Remove}) -join ';'
however didn't seem to remove it being my path I want to add ("FFmpeg:C:\Users\user\AppData\") and adding it with += C:/Users/etc.. didn't see, the way to go.
Another way I tried to add vars through the Powershell commands was using SetEnviormentVariable and it seemed to work fine but once I restarted my PC the entry I made with it was gone.
Sadly though all in the end all my powershell commands didn't work with subprocess. Whatever command it was I was using here I got:
PS C:\Users\Me123> python
>>> import subprocess
>>> subprocess.run("$Env:Path", shell=True)
The filename, directory name, or volume label syntax is incorrect.
CompletedProcess(args='$Env:Path', returncode=1)
Solution 1:[1]
Python's subprocess on Windows does not call Powershell by default but CMD shell. So try the analogous CMD command:
subprocess.run("echo %Path%", shell=True)
But if you need Powershell, explicitly call it with your command:
subprocess.run("powershell $Env:Path", shell=True)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Parfait |
