bat命令バッチ処理判断32ビットか64ビットシステムかの様々な方法
第一コード:PROCESSOR_を通じてARCHITECTURRE%
cmdで
このバッチの処理コードは簡単です。32ビットシステムなら、私達を開けます。64ビットシステムなら、百度を開けます。
もちろん、このロットの処理コードは実際の用途ではなく、テストをするだけです。実際には、この検出は非常に有用です。例えば、異なる状況によって、異なるサービスを登録するなどです。
第二のコード:if exist%winddir%\SysWOW 64
インスタンスコード
このバッチの処理コードは簡単です。32ビットシステムなら、私達を開けます。64ビットシステムなら、百度を開けます。
以下は私達の小編で皆さんにいくつかの実例を共有します。
cmd命令でバッチ処理してwindowsシステムが32 bitですか?それとも64 bitですか?
引き続き補充する
64ビットシステムレジストリ:
[HKEY_]LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0]
「Identifer」=「Intel 64 Family 6 Model 62 Step ping 4」
64ビットシステム変数:
PROCESSOR_IDENTIFIER=Intel 64 Family 6 Model 62 Step ping 4、GenuineIntel
PROCESSOR_ARCHITECTURE=AMD 64
続いて皆さんに分かち合います。
batバッチ判定システム32ビットまたは64ビットおよびオペレーティングシステムタイプ
方法1:
時々wowのことを考えます。
バッチ処理プログラムによる検出システムは32ビットか64ビットか、結果をc:\a.txtファイルに保存し、判断の結果32ビットシステムで123フォルダをC:\Program Filesフォルダにコピーします。64ビットシステムです。123フォルダをC:\program files(x 86)ファイルにコピーします。
例えば、緑色のソフトウェアがたくさんありますが、各ソフトは32位か64位かを判断しなければなりません。全部C:\Program Filesにコピーしただけです。これは一時的に設定しただけで、他のバッチファイルのコピーの経路に影響しないですか?
cmdで
echo %PROCESSOR_ARCHITECTURE%
を通過することができます。
if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto x64
exit
:x64
explorer.exe http://www.baidu.com/
exit
:x86
explorer.exe https://www.jb51.net/
x 86代表システムは32ビット、AMD 64代表システムは64ビットです。このバッチの処理コードは簡単です。32ビットシステムなら、私達を開けます。64ビットシステムなら、百度を開けます。
もちろん、このロットの処理コードは実際の用途ではなく、テストをするだけです。実際には、この検出は非常に有用です。例えば、異なる状況によって、異なるサービスを登録するなどです。
第二のコード:if exist%winddir%\SysWOW 64
インスタンスコード
@echo off
if exist %windir%\SysWOW64 (
start http://www.baidu.com
)else (
start https://www.jb51.net
)
SysWOW 64ディレクトリがあるかどうかを判断する原理です。64ビットのシステムにはこのディレクトリがあります。このバッチの処理コードは簡単です。32ビットシステムなら、私達を開けます。64ビットシステムなら、百度を開けます。
以下は私達の小編で皆さんにいくつかの実例を共有します。
cmd命令でバッチ処理してwindowsシステムが32 bitですか?それとも64 bitですか?
@echo off
::
for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b
:: b
set b=%b:* =%
::
echo %b:~0,4%
echo %PROCESSOR_ARCHITECTURE:~-1%
echo %b:~0,4%%PROCESSOR_ARCHITECTURE:~-1%
:: cmd
call:%b:~0,4%%PROCESSOR_ARCHITECTURE:~-1%
pause&exit
:5.1.6
echo : winxp_32
goto:eof
:5.2.6
echo : win2003_32
goto:eof
:5.2.4
echo : win2003_64
goto:eof
:6.1.6
echo :win7_32
goto:eof
:6.1.4
echo :win7 win2008_64
出力は以下の通りです引き続き補充する
64ビットシステムレジストリ:
[HKEY_]LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0]
「Identifer」=「Intel 64 Family 6 Model 62 Step ping 4」
64ビットシステム変数:
PROCESSOR_IDENTIFIER=Intel 64 Family 6 Model 62 Step ping 4、GenuineIntel
PROCESSOR_ARCHITECTURE=AMD 64
@echo off
IF "%PROCESSOR_ARCHITECTURE%" == "X86" (
echo 32
) ELSE (
echo 64
)
基本的にはこのようにして分かりますよね。32は64位に位置しています。ここを区別して解決しなければなりません。続いて皆さんに分かち合います。
batバッチ判定システム32ビットまたは64ビットおよびオペレーティングシステムタイプ
方法1:
systeminfo |find "x64"
方法二:時々wowのことを考えます。
IF PROCESSOR_ARCHITECTURE == amd64 or
PROCESSOR_ARCHITEW6432 == amd64 THEN
// OS is 64bit
ELSE
// OS is 32bit
END IF
Another way to test for the same thing is:
IF PROCESSOR_ARCHITECTURE == x86 AND
PROCESSOR_ARCHITEW6432 NOT DEFINED THEN
// OS is 32bit
ELSE
// OS is 64bit
END IF
varに格納されているデータ、PROCESSOR_ARCHITECTUREに格納されている内容
@echo off
for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b
set b=%b:* =%
goto %b:~0,4%%PROCESSOR_ARCHITECTURE:~-1%
:5.1.6
echo xp_32λ
goto:eof
:6.1.6
echo win7_32λ
goto:eof
:6.1.4
echo win7_64λ
:6.0.6
echo vista_32
::exit
:6.0.4
echo vista_64
::exit
pause
バッチ処理は32ビットの64ビットシステムを検出し、結果はテキストになり、判断後に対応するprogram filesまたはprogram files(x 86)にフォルダ123をコピーする。バッチ処理プログラムによる検出システムは32ビットか64ビットか、結果をc:\a.txtファイルに保存し、判断の結果32ビットシステムで123フォルダをC:\Program Filesフォルダにコピーします。64ビットシステムです。123フォルダをC:\program files(x 86)ファイルにコピーします。
例えば、緑色のソフトウェアがたくさんありますが、各ソフトは32位か64位かを判断しなければなりません。全部C:\Program Filesにコピーしただけです。これは一時的に設定しただけで、他のバッチファイルのコピーの経路に影響しないですか?
@echo off
if %PROCESSOR_ARCHITECTURE%==x86 (echo 32 >c:\a.txt&xcopy /d/y/c/e/h/k "%~dp0123" "C:\Program Files\123\") else (echo 64 >c:\a.txt&xcopy /d/y/c/e/h/k "%~dp0123" "C:\Program Files (x86)\123\")
pause
または
@echo off
if %PROCESSOR_ARCHITECTURE%==x86 (set "var=C:\Program Files") else set "var=C:\Program Files (x86)"
echo %var%
pause
はい、上のコードには環境変数が設定されていません。バッチ処理中の一時的なローカル変数が設定されているだけで、バッチ処理を終了すると無効になります。