PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   批次檔的疑問(判斷錯誤) (https://www.pcdvd.com.tw/showthread.php?t=939465)

dnagl 2011-08-20 10:40 PM

批次檔的疑問(判斷錯誤)
 
寫了一串指令如下:
if "%PROCESSOR_ARCHITECTURE%" == "x86" goto NT6x86
if "%PROCESSOR_ARCHITECTURE%" == "AMD64" goto NT6x64

主要是讓他判斷WIN7的位元,但是只要用類似WINRAR的自解壓縮讓他去跑批次檔BAT在64BIT系統下會出現判斷錯誤,他會識別成32BIT而不是64BIT,只有作成EXE的檔會出錯,單獨執行BAT又正常,請問要怎麼處理這詭異的現象,百思不得其解...

polar168 2011-08-20 11:02 PM

雖然我不懂...


不過有一個問題我想問一下, 你的指令裡指的是CPU的部份, 還是OS的部份 :confused:


如果CPU是有X64的, 但安裝在X86的OS底下....它會怎麼跑 :confused:

dnagl 2011-08-21 12:03 AM

引用:
作者polar168
雖然我不懂...


不過有一個問題我想問一下, 你的指令裡指的是CPU的部份, 還是OS的部份 :confused:


如果CPU是有X64的, 但安裝在X86的OS底下....它會怎麼跑 :confused:


同樣的CPU OS再32跟64呈現的部分不一樣
32BIT的OS會出現x86
64BIT的OS會出現AMD64

主要是讓他判斷OS部分,打包成自解檔就會判斷錯誤,反之

如果換成
echo %processor_architecture% | find "86" >nul && if %errorlevel% equ 0 echo 32 Bit
echo %processor_architecture% | find "64" >nul && if %errorlevel% equ 0 echo 64 Bit
情況跟上面一樣,只要打包成類似安裝檔EXE就會判斷錯誤,單獨執行BAT卻正常

ylong 2011-08-21 12:07 AM

引用:
作者dnagl
用類似WINRAR的自解壓縮

自解壓縮程式應該是 32bit 的吧? 這樣 W7 在 32bit mode 跑那程式,
所以那個變數就是x86

polar168 2011-08-21 12:11 AM

引用:
作者dnagl
同樣的CPU OS再32跟64呈現的部分不一樣
32BIT的OS會出現x86
64BIT的OS會出現AMD64

主要是讓他判斷OS部分,打包成自解檔就會判斷錯誤,反之

如果換成
echo %processor_architecture% | find "86" >nul && if %errorlevel% equ 0 echo 32 Bit
echo %processor_architecture% | find "64" >nul && if %errorlevel% equ 0 echo 64 Bit
情況跟上面一樣,只要打包成類似安裝檔EXE就會判斷錯誤,單獨執行BAT卻正常


那...會不會是因為解壓縮軟體的關係 :confused:

dnagl 2011-08-21 12:27 AM

引用:
作者ylong
自解壓縮程式應該是 32bit 的吧? 這樣 W7 在 32bit mode 跑那程式,
所以那個變數就是x86

自解檔是用WINRAR 64BIT版

dnagl 2011-08-21 11:19 PM

後來我發現只要是用自解檔出來的批次檔裡面的環境變數都會造成誤判,我用WIN7-64
BAT裡面有用到%ProgramFiles%,而使用%ProgramFiles(X86)%會變成C:\Program Files(X86)為正常,而使用%ProgramFiles%會變成C:\Program Files為正常,問題來了...我用%ProgramFiles%結果他識別成C:\Program Files(X86)


所有的時間均為GMT +8。 現在的時間是02:00 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。