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