30/09/2018, 17:55

Tạo biến môi trường trên cmd

Mình viết một đoạn script trên python để tạo đường dẫn đến chương trình nhưng không thấy xuất hiện path đó trong Systems Properties>Environment Variables. Khi gọi chương trình thì chỉ có trên cmd với quyền admin là chạy được, còn cmd với quyền user thì không chạy được. Phải sửa như thế nào?

os.system('setx /M PATH "%s"' % path)
Mai Anh Dũng viết 20:06 ngày 30/09/2018

Khi gọi chương trình thì chỉ có trên cmd với quyền admin là chạy được, còn cmd với quyền user thì không chạy được

Nếu vậy thì phải chạy với quyền Admin thôi, anh chưa thử nhưng em nói như thế thì rõ ràng rồi còn gì ^^

Minh Hoàng viết 20:02 ngày 30/09/2018

Có cách nào không nhỉ hay là phải set bằng tay.
Update: os.system('setx PATH "%s"' % path) nếu như thế này thì trong list biến môi trường cho user sẽ xuất hiện path, cơ mà vẫn không gọi chương trình được

Thành Phạm viết 20:09 ngày 30/09/2018

Anh thử cái này xem được không

os.system('setx PATH "%s" /M' % new_path)

Em dùng cho cái diễn đànconsole ổn mà

http://ss64.com/nt/setx.html

/m
Set the variable in the system environment HKLM.
(The default is the local environment HKCU)

Mai Anh Dũng viết 20:08 ngày 30/09/2018

Thử cái này nữa

import admin
if not admin.isUserAdmin():
        admin.runAsAdmin()
stackoverflow.com
sundar_ima

How to run python script with elevated privilege on windows

python, windows, admin, elevated-privileges
asked by sundar_ima on 01:41AM - 30 Oct 13
Minh Hoàng viết 20:11 ngày 30/09/2018

@thanhmssl10 không được Thành ơi, giống cái dòng code ban đầu của anh thôi
mà để chương trình trong ổ D thì chắc không vấn đề gì nhỉ?

@ltd các thư viện này import win32api, win32con, win32event, win32process hình như không có, thử đổi thành 64 thì cũng không có

Thành Phạm viết 20:00 ngày 30/09/2018

Ừ nhể, em nhìn không kĩ quả này khoai rồi, anh thử build ra exe xong chuột phải, “run as admin” xem có được k.

Minh Hoàng viết 20:09 ngày 30/09/2018

Nếu chạy “run as admin” thì bình thường, với user thì hơi khoai

Thành Phạm viết 19:59 ngày 30/09/2018

Quái nhể Em vừa test lại, thấy vẫn ổn, chạy phát ăn luôn. Máy em win 7 64 bit, python 2, có một điểm khác là em add cái path vào đầu PATH chứ không phải cuối (chắc k liên quan lắm)

Toàn bộ code setup path của em nó như thế này:

def setupPath():
    current_path = os.path.dirname(os.path.abspath("__file__"))
    if not current_path in os.environ['path']:
        new_path = current_path + ';%PATH%' 
        os.system('setx PATH "%s" /M' % new_path)
        print "Da Setup Path thanh cong!"
        print "Khoi dong lai cmd"
        print "Ban co the truy cap dnh tu bat ki duong dan nao" 

Anh thử down cái diễn đànconsole này về, giải nén ở ổ D, xong cd đến thư mục chứa nó, xong gõ dnh setup path xem nó có thêm được path k

https://app.box.com/s/arv1uq15sd4gklfzizxqiyjfu7feg2jb

Bài liên quan
0