我正在嘗試編寫一個Windows批處理文件,爲我公司的內部用戶啓動安裝程序。有一個鏈接到我們的內部網上的批處理文件。如果你點擊鏈接(至少在我必須支持的IE9上),它會詢問你是否要運行或保存文件。大多數用戶單擊「運行」,批處理文件將作爲IE的子進程執行,並繼承其環境變量。這是我的問題出現的地方。在Windows上從瀏覽器運行批處理文件,但不繼承瀏覽器的環境變量
如果瀏覽器已經開了一段時間,它可能是一個(用戶或系統級)環境變量已經在用戶的PC 上設置瀏覽器之後推出,所以該批處理文件並沒有看到變量,我需要它。
我想找到一種方法來確保批處理文件始終在全新的環境下運行。
這工作
rem bootstrap batch file
explorer the_real_batch_file.bat
因爲Explorer.exe
是警惕的用戶和系統環境變量的變化,但這並不
rem bootstrap batch file
explorer the_real_batch_file.bat some_param
的some_param
混淆Windows資源管理器(它只是推出一個新的Windows Explorer窗口)。我需要能夠將參數傳遞給'真正'的批處理文件,所以這是一個顯示停止。
任何人都可以看到解決這個問題的方法嗎?
'啓動瀏覽器the_real_batch_file'而不是,所以它成爲一個新的單獨的過程?系統變量應該始終顯示在一個新的進程中,即使這個新進程是在這些新的變量設置之前從某個進程啓動的。 –
系統環境變量不能像那樣工作。我剛剛從命令行程序中嘗試了它:執行一個批處理文件,它迴應一些不存在的變量,如'%WIBBLE%'。沒有什麼迴音。然後添加一個名爲'WIBBLE'的sys env var並將其設置爲'some text',然後從相同的命令shell再次運行該批處理文件 - 仍然沒有回顯。 – Ben
當你設置一個env var時,explorer並沒有得到重啓,所以我沒有看到如果在這種情況下沒有完全重新啓動,windows中的任何新進程如何得到一個新的env var。 –