子进程 $Env:Path python: 文件名、目录名或卷标语法不正确

Subprocess $Env:Path python: The filename, directory name, or volume label syntax is incorrect

我正在尝试更改 windows 环境变量,但我在这样做时遇到了问题。

在我尝试使用 os.environ() 之前,我尝试使用 powershell 命令并向 $Env:Path 添加一个字符串,但它有效,但删除它:

$env:Path = ($env:Path.Split(';') | Where-Object -FilterScript {$_ -ne $Remove}) -join ';'

然而似乎没有删除它是我想添加的路径 ("FFmpeg:C:\Users\user\AppData\") 并添加它 += C:/Users/etc.. 没看到,要走的路。

我尝试通过 Powershell 命令添加变量的另一种方法是使用 SetEnviormentVariable,它似乎工作正常,但是一旦我重新启动我的 PC,我用它创建的条目就消失了。

遗憾的是,尽管最终 我所有的 powershell 命令都无法使用 子进程。无论我在这里使用什么命令,我都得到了:

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)

Python 在 Windows 上的 subprocess 默认不调用 Powershell,而是调用 CMD shell。所以尝试类似的 CMD 命令:

subprocess.run("echo %Path%", shell=True)

但如果您需要电源shell,请使用您的命令显式调用它:

subprocess.run("powershell $Env:Path", shell=True)