子进程 $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)
我正在尝试更改 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)