簡體   English   中英

如何制作Windows批處理文件來更改環境變量?

[英]How can I make a Windows batch-file which changes an environment variable?

是否可以制作一個可以對環境變量進行持久更改的批處理文件?

例如,我的installer.bat腳本將一些文件復制到計算機文件系統中的隨機位置 我想將該位置添加到PATH環境變量中,以便程序可以在當前會話中運行。

僅供參考-我正在安裝的東西經常更改:我想在每次運行該程序時進行全新安裝。 另外,我不想覆蓋程序的其他先前安裝的副本,以防萬一其他(舊)實例仍在執行。

我希望能夠執行以下操作:

rem install_and_run.bat
install.bat 
myapplication.exe 

不幸的是,這是行不通的,因為install.bat永遠不會“返回”主腳本。 永遠不會調用myapplication.exe。 接下來我嘗試了:

cmd /C install.bat
myapplication.exe 

不幸的是,這不起作用,因為這意味着install.bat在完全獨立的cmd.exe shell中運行。 這意味着腳本終止后,環境變量更改將不會繼續存在,因為cmd.exe也將終止。

必須有一種方法可以制作一個更改環境變量的批處理文件

有什么建議么?

就您而言,您想要的是

rem install_and_run.bat
call install.bat 
myapplication.exe

也就是說,使用call來調用install.bat ,這樣控件將返回到install_and_run.bat

我認為您不了解環境變量是每個進程的 您的批處理文件正在cmd.exe實例中運行,並且該實例具有環境。 編寫cmd /C您正在創建一個具有自己環境的cmd.exe新實例。 然后install.bat對cmd.exe新實例的環境進行了“持久”更改。

好吧,你可以這樣做:

設置EnvVariableName =“某些值”

至於您從另一個批處理文件中調用單獨的批處理文件,我相信call命令將返回

rem install_and_run.bat
call install.bat
myapplication.exe

您無法創建或修改環境變量,並且無法通過批處理腳本AFAIK在控制台會話之間保留環境變量。

我有一個用於批處理腳本包裝的VBScript腳本,但我認為Jay為您提供了正確的解決方案。 如果您願意,我可以發布我的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM