亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否有命令從Windows中的命令提示符刷新環境變量?

是否有命令從Windows中的命令提示符刷新環境變量?

慕妹3146593 2019-08-24 14:37:30
是否有命令從Windows中的命令提示符刷新環境變量?如果我修改或添加環境變量,我必須重新啟動命令提示符。是否有一個我可以執行的命令可以在不重新啟動CMD的情況下執行此操作?
查看完整描述

3 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

如果您只需要在Windows中刷新環境變量,請從終端運行refreshenv,而不是重新啟動PC。


查看完整回答
反對 回復 2019-08-24
?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

感謝您發布這個非常有趣的問題,即使在2019年(事實上,更新shell cmd并不容易,因為它是如上所述的單個實例),因為在Windows中更新環境變量可以完成許多自動化任務而無需必須手動重啟命令行。

例如,我們使用它來允許在我們定期重新安裝的大量機器上部署和配置軟件。我必須承認,在部署我們的軟件期間不得不重新啟動命令行是非常不切實際的,并且需要我們找到不一定令人愉快的解決方法。讓我們來解決我們的問題。我們按如下方式進行。

1 - 我們有一個批處理腳本,它反過來調用這樣的powershell腳本

[file:task.cmd]。

CMD > powershell.exe -executionpolicy unrestricted -File C:\path_here\refresh.ps1

2 - 此后,refresh.ps1腳本使用注冊表項(GetValueNames()等)更新環境變量。然后,在相同的PowerShell腳本中,我們只需調用新的環境變量即可。例如,在典型的情況下,如果我們之前使用靜默命令安裝了nodeJS,則在調用該函數之后,我們可以直接調用npm在同一會話中安裝如下的特定軟件包。

[file:refresh.ps1]

function Update-Environment {
    $locations = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session  Manager\Environment',
                 'HKCU:\Environment'
    $locations | ForEach-Object {
        $k = Get-Item $_
        $k.GetValueNames() | ForEach-Object {
            $name  = $_
            $value = $k.GetValue($_)
            if ($userLocation -and $name -ieq 'PATH') {
                $env:Path += ";$value"
            } else {
                Set-Item -Path Env:\$name -Value $value
            }
        }
        $userLocation = $true
    }}Update-Environment#Here we can use newly added environment variables like for example npm install.. npm install -g create-react-app serve

powershell腳本結束后,cmd腳本繼續執行其他任務?,F在,要記住的一件事是,在任務完成后,cmd仍然無法訪問新的環境變量,即使powershell腳本已在其自己的會話中更新了這些變量。這就是為什么我們在powershell腳本中執行所有需要的任務,當然可以調用與cmd相同的命令。


查看完整回答
反對 回復 2019-08-24
  • 3 回答
  • 0 關注
  • 5335 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號