2017-04-08 102 views
0

我有一個需求,我需要使用批處理文件來執行某些任務,具體取決於某些註冊表值。如果我手動運行批處理文件,我可以運行並實現我的目標。但是,如果使用某個可執行文件運行批處理,則無法獲取註冊表值。它讀取所有註冊表值爲空。我沒有看到這種行爲的任何特定原因。實際要求是將此批處理文件作爲自解壓縮可執行文件的一部分運行。我嘗試使用C#應用程序啓動,但仍然沒有運氣。有任何想法嗎?我究竟做錯了什麼。無法從批處理文件讀取註冊表

+0

發佈代碼,否則此帖子是關於堆棧溢出的主題。 – Compo

+2

最有可能的原因是:可執行文件是32位的,所以它啓動了一個32位實例'cmd.exe'來運行批處理文件,所以你會看到[註冊表的32位視圖](https ://msdn.microsoft.com/en-us/library/windows/desktop/aa384232(v = vs.85).aspx)而不是64位視圖。 [這個答案](http://stackoverflow.com/a/27093204/886887)的東西可能會解決這個問題。 –

+0

@哈里謝謝。這是真正的原因。雖然可執行文件是64位,但它仍在嘗試讀取32位註冊表。我不得不強制它讀取64位註冊表。 – dev

回答

0

提高可執行文件的權限,即以管理員身份運行

+0

我試着以管理員身份運行,但沒有工作。當我使用命令提示符運行批處理時,它只需運行而不需要管理員權限。所以這似乎不是問題。 – dev