情況:爲什麼Windows Vista 64位默認使用32位cmd.exe? (機專用)
我需要我們目前的發展環境,從Windows轉換 XP 32位到Windows Vista的 64位(*)。當然,我碰到很多在我們的構建系統中的硬編碼路徑是有問題的地方(例如「C:\Program Files
」變成「C:\Program Files (x86)
」)。幸運的是,有一個%ProgramFiles%
環境變量映射到基於源進程(32位或64位)的正確目錄。所以我用%ProgramFiles%
更新了構建腳本,並且我確信它會是最後一個。
構建環境從命令行(C:\Windows\System32\cmd.exe
)調用。
問題: 在一個特定的計算機(即我的開發機在工作),事實證明,C:\Windows\System32\cmd.exe
實際上是一個32位的過程,所以劇本找到x86
版本Program Files
目錄,一切偉大工程。
在我能找到的每臺其他64位機器上(包括我的家用機器),C:\Windows\System32\cmd.exe
是64位版本,而32位版本是C:\Windows\SysWow64\cmd.exe
。所以構建腳本找不到任何他們正在尋找和失敗的東西。
我現在明白了,32位cmd.exe
應稱爲明確,如果這就是你所需要的,默認情況下你會得到一個64位cmd.exe
。的WORKSFORME
典型案例......
問題是,發生了什麼機器在那裏,這是不是真的?爲什麼我在一臺機器上默認獲得32位cmd.exe
,但在其他機器上沒有?在任何情況下,我明確地執行C:\Windows\System32\cmd.exe
從Start|Run
菜單,但得到不同的結果一臺機器只上。所有的都運行相同版本的Vista 64位。
任何想法或見解?
(*)請接受我必須做到這一點。我不能隨便說爲什麼我這樣做。重新安裝操作系統和一切從頭開始可能會起作用,但它肯定是矯枉過正。此外,說服IT部門放棄Vista機器已經非常困難了!
覈實後,Explorer.exe進程是所有機器上64位。我不明白64位進程如何默認啓動cmd的32位版本...... :( – 2008-12-17 13:22:03