為什麼Windows系統環境變數里會有個不一樣的USERNAME變數?
01-28
自定義Windows Command Prompt時發現,通過命令
效果如下,達到預期目的,裡面用到了一個 叫 %username%的變數,值是我的windows用戶名。
set prompt=[%username%@%computername%] $p$_$+$$$S
為了永久保持這個自定義效果,我在環境變數里設置了一個名為prompt的環境變數然後重新打開一個新的cmd,效果如下 可以看到輸出的%username%變數值是SYSTEM,而不是wilson;之後檢查發現windows自帶一個同名的系統環境變數,但值是SYSTEM 我的問題是: 如何才能實現我要的效果,但又不改動系統自帶的這個變數值? 因為擔心更改這個值之後產生其它副作用。
這是因為session不一樣。你不要通過全局變數來設置,而是把這個賦值寫在你自己創建的cmd的快捷方式的target裡面。這也是Visual Studio Command Prompt的做法——在啟動mad的時候【才】去讀一個cmd然後運行,這樣所有的數據都是當前用戶的。
因為 Windows 每個 Console Window 都是一個獨立的 console,不像 *nix,整個 GUI 都是在同一個 console 下的,除非你到另一個 console 下另啟動了一個 GUI。Windows Console 是一種特殊的窗口,命令行程序必須在 console window 中運行,而 *nix 的 GUI 和命令行程序本質上沒啥區別。
推薦閱讀:
※效仿Apple,將FreeBSD的內核換成L4微內核,將基本系統改造成圍繞L4的一系列服務……可行么?
※WHEA原理和架構
※【操作系統系列】Tinix
※如何將C語言發揮到極致?
※Windows 之後,什麼操作系統可能會佔據主流?
TAG:MicrosoftWindows | 操作系統 | 命令提示符cmd |