% PATH% Windows Sisteminin% PATH kullanıcısına eklenmesini önlensin mi?


19

Sisteme veya kullanıcıya özel ortam değişkenlerini nasıl ayarlayacağımı biliyorum:

Windows Ortam Değişkenleri

Şimdi sorun, PATHdeğişkenin PATH kullanıcısı için girdiğiniz değerin otomatik olarak sistem PATH'sine ekleneceği ve etkili PATH değişkeni olacağı şekilde ele alınmasıdır.

Yani, diyorum ki

(SİSTEMİ) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...

ve (USER) PATH=C:\Program Files\Bar\bin( %PATH%bu değerde olmadığını unutmayın )

bu kullanıcı için elde edilen ortam değişkeni şöyle olur:

(Etkin) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin

Ancak, çok özel bir işletim sistemi kullanıcı hesabı için PATH ortam değişkeninin bar\bindizin yerine PATH başlangıcında olması gerekir .

Pencerelere PATH, bir kullanıcının PATHdeğişkenini sistem değişkenine eklemek yerine bu kullanıcının değerine göre tamamen geçersiz kılmalarını söylemenin uygun bir yolu var mı ?

Not: Açıkça, bir toplu iş dosyasından, env.vars'ı istediğiniz gibi ayarlayabileceğiniz ve değiştirebileceğiniz için bunların önemi yoktur.


Neden sadece KULLANICI bölümünü yok saymıyorsunuz? KULLANICI Yolu değişkenini silin ve her şeyi SİSTEM Yolu değişkenine istediğiniz sırayla yerleştirin.
Kevin Fegan

1
@KevinFegan: makinedeki bazı hizmetlerin bağımlı çünkü Eh, o SİSTEMİ PATHve bu özel kullanıcı hesabı daha iyi farklı bir sahip olarak hizmet olacağını PATH. Çok fazla geçici çözüm olduğunu biliyorum, ancak bunu başarmak için kutunun dışında / OS / kayıt defteri düzeyinde bir şey olup olmadığıyla ilgileniyordum.
Martin

Yanıtlar:


3

Komut istemi oturumlarında çalışmak için buna ihtiyacınız varsa, bir profil / init toplu iş dosyası oluşturun ve kayıt defterinde /programming/17404165/how-to-run-a-command-on adresine göre yapılandırın. -komut-istemi-pencerelerde başlatma . Örneğin,

reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun ^
  /t REG_EXPAND_SZ /d "%"USERPROFILE"%\init.cmd" /f

Ardından, bu toplu iş dosyasında PATH üzerinde değişiklikler yapın. Örneğin,

SET USER_PATH=c:\whatever
SET PATH=%USER_PATH%;%PATH%

0

Aynı sorunu yaşadım ve bu benim için çalıştı:

Şu yolla "kullanıcı yolu değişkeni" alabilirsiniz:

>reg query HKCU\Environment /v path

Çıktı (makinemde):

HKEY_CURRENT_USER\Environment
    path    REG_SZ    C:\Program Files (x86)\GnuWin32\bin

Ama sonra bunu ayrıştırmalı ve ilgili kısmı kullanmalısınız.

Burada çözüm okumak burada ve benim makinede test etti.


-1

Sistem değişkenini yok saymayı bilmiyorum, ancak oturum değişkenlerini ( SETkomut aracılığıyla ) kullanırsanız, diğer değişkenlere göre öncelikli olduğunu biliyorum . Böylece SET PATH=C:\Program Files\Bar\binkomutu kullanabilirsiniz ve istediğiniz yol değişkenin ilk kısmı olacaktır.

İşte geçerli bir referans ve burada bu sayfadan basit bir süre rapor ediyorum:

Aynı ada sahip değişkenler hem Kullanıcı hem de Makine Ortamı değişkenleri olarak saklanırsa, kullanıcı değişkeni öncelik kazanacaktır. Aynı ada sahip Kullanıcı ve / veya Makine Ortamı değişkenlerinden öncelikli bir Oturum değişkeni oluşturulursa.


Bu yararlı bir referanstır, ancak alıntıladığınız ilk cümle aşırı genellemedir. PATHDeğişken bir istisna (özel durum) 'dir - kullanıcı değişkeni yok değil sistem değişkeni önceliklidir. “Oturum değişkeni” nin hem kullanıcı hem de sistem ön ayarlı değişkenlerine göre öncelikli olması doğrudur, ancak bir kullanıcı için oturum değişkenini otomatik olarak nasıl ayarlarsınız ?  G-Wiz bu soruyu yanıtladı ve AFAICS, bu cevaba hiçbir şey eklemediniz.
Scott
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.