Stránka 1 z 1
Rozlišení architektury x86 a x64
Napsal: 04 led 2014 14:09
od zetrozet
Jak rozlišit 32-bit Windows od 64-Windows nejlépe v dávkovém souboru, aby bylo možno v *.bat větvit, co se bude spouštět. Zkoušel jsem "ver", ale Windows 7/32 i Windows 7/64 dávají verzi 6.1.7601.
Re: Rozlišení architektury x86 a x64
Napsal: 04 led 2014 14:11
od petr22
Ja jsem to vzdy delal tim ze jsem zkousel jestli existuje C:\Program Files (X86)
Re: Rozlišení architektury x86 a x64
Napsal: 04 led 2014 14:19
od zetrozet
Ale já to potřebuji zjistit z CD rozesílaného zákazníkům a dopředu nevím, v jakých Windows si uživatel bude CD spouštět ani v kterou denní či noční hodinu to bude. Chápu, že existuje příkaz "if exist C:\Program Files (x86)\null GoTo...", ale existence tohoto adresáře není zárukou, že jde o 64bit architekturu.
Re: Rozlišení architektury x86 a x64
Napsal: 04 led 2014 14:45
od petr22
Divil bych se kdyby existoval na 32bitovych Windows, druha moznost je C:\Windows\sysWOW64, ten u 64bit Windows existovat musi a na 32bitovych byt nemuze.
Re: Rozlišení architektury x86 a x64
Napsal: 04 led 2014 17:20
od zetrozet
Za těch 23 let "pracovně" u počítače se už nedivím ničemu, zvláště, jedná-li se o počítače uživatelů. Jinak jsem usoudil, že "C:\Windows\SysWOW64" je ve 32 bit Windows méně pravděpodobný, než "\Program Files (x86)", ale není nemožný (Windows 7/32 mi ho vytvořit dovolily). Jinak se musí - zase kvůli systémákům - použít zápis "%SYSTEMROOT%\SysWOW64\", protože nikde není dáno, že Windows budou instalovány do adresáře Windows.
Re: Rozlišení architektury x86 a x64
Napsal: 05 led 2014 11:23
od zetrozet
Přikládám zajímavé výsledky (jako obrázek), získané na notebooku Lenovo ve Windows 7/64 tímto baťákem:
Kód: Vybrat vše
@echo off
echo PROCESSOR_ARCHITECTURE var:
echo %PROCESSOR_ARCHITECTURE% | find /i "x86" > nul
if %errorlevel%==0 (
echo 32-bit
) else (
echo 64-bit
)
echo.
echo PROCESSOR_ARCHITECTURE reg:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE | find /i "x86" > nul
if %errorlevel%==0 (
echo 32-bit
) else (
echo 64-bit
)
echo.
echo CentralProcessor reg:
reg query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul
if %errorlevel%==0 (
echo 32-bit
) else (
echo 64-bit
)
echo.
echo ProgramFiles(x86) var:
if not defined ProgramFiles(x86) (
echo 32-bit
) else (
echo 64-bit
)
echo.
echo ProgramFiles(x86) dir:
if not exist "%systemdrive%\Program Files (x86)" (
echo 32-bit
) else (
echo 64-bit
)
echo.
pause
Re: Rozlišení architektury x86 a x64
Napsal: 05 led 2014 14:47
od faraon
Přes detekci nějakého souboru/adresáře to bude vždycky trochu nespolehlivé, protože nainstalované tam může být cokoliv, ale nemusí se to nikdy použít.
Nebylo by možné na to tvoje CD umístit nějaký prográmek, který by ti prověřil přímo procesor, a podle jeho návratové hodnoty bys testoval ten errorlevel?
Re: Rozlišení architektury x86 a x64
Napsal: 05 led 2014 14:55
od petr22
Potiz je v tom, ze prave dotaz na procesor_architecture vrati i na 64bit OS ze je to 32bit CPU (coz je pravda)