3
我编写了一个脚本,用于检查来自Path的目录并删除无法访问的目录。我还用snippet作为管理员运行我的脚本。但是当我在脚本执行后检查我的路径时 - 它们都是一样的。从Python脚本更改环境变量
import os
import sys
import win32com.shell.shell as shell
if __name__ == "__main__":
if os.name != 'nt':
raise RuntimeError("This script is implemented only for Windows")
ASADMIN = 'asadmin'
if sys.argv[-1] != ASADMIN:
script = os.path.abspath(sys.argv[0])
params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
print("I am root now")
paths = os.environ.get('Path').split(';')
accessible_paths = []
for path in paths:
if os.access(path, os.R_OK):
accessible_paths.append(path)
new_path = ';'.join(accessible_paths)
os.environ['Path'] = new_path
print(new_path)
print(new_path == os.environ['Path'])
那么我怎样才能真正改变环境变量的Python脚本?
初始系统环境变量由会话管理器(smss.exe)从注册表项HKLM \ System \ CurrentControlSet \ Control \ Session Manager \ Environment'。 winlogon.exe还会合并从用户的HKCU \ Environment'键加载的每个用户'PATH'。 – eryksun 2015-01-19 08:24:58