Impedire al sistema Windows% PATH% di essere aggiunto all'utente% PATH?

So come impostare le variables di ambiente di sistema o utente:

Variabili di ambiente di Windows

Ora, il problema è che la variabile PATH viene trattata in modo tale che il valore immesso per l'utente PATH verrà automaticamente aggiunto al sistema PATH e che sarà l'effettiva variabile PATH.

Cioè, dico io

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

e (UTENTE) PATH=C:\Program Files\Bar\bin (notare che non esiste %PATH% in questo valore)

quindi la variabile di ambiente risultante per questo utente sarà:

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

Tuttavia, mi piacerebbe piuttosto che per un account utente molto specifico OS, la variabile di ambiente PATH dovrebbe avere la directory bar\bin all'inizio del PATH invece che alla fine.

C'è un modo corretto per dire alle windows di ignorare totalmente la variabile PATH di un utente con il valore per quell'utente invece di aggiungerlo alla variabile PATH del sistema?

Nota: Ovviamente, da un file batch, tutto questo non import come puoi impostare e modificare gli env.vars come ti piace.

Ho avuto lo stesso problema e questo ha funzionato per me:

È ansible get "variabile path utente" tramite:

 >reg query HKCU\Environment /v path 

L'output (sulla mia macchina) è:

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

Ma allora devi analizzare questo e usare la parte pertinente.

Ho letto la soluzione qui qui e testato sulla mia macchina.

Se hai solo bisogno di questa operazione per le sessioni di prompt dei comandi, crea un file batch di profilo / init e configura nel registro, per https://stackoverflow.com/questions/17404165/how-to-run-a-commandon -command-prompt-startup-in-windows . Per esempio,

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

Quindi fare semplicemente modifiche al PATH in quel file batch. Per esempio,

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