5Yr*_*DBA 52 windows command-line
我可以检查当前机器是否在批处理文件中运行64位操作系统或32位 操作系统?
编辑:
在网上找到这个,现在对我来说已经足够了:
小智 70
这是根据Microsoft的知识库参考(http://support.microsoft.com/kb/556009)执行检查的正确方法,我已将其重新编辑为一行代码.
它不依赖于任何环境变量或文件夹名称,而是直接在注册表中进行检查.
如下面的完整批处理文件所示,它将设置一个等于32BIT或64BIT的环境变量OS,您可以根据需要使用它.
@echo OFF
reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > NUL && set OS=32BIT || set OS=64BIT
if %OS%==32BIT echo This is a 32bit operating system
if %OS%==64BIT echo This is a 64bit operating system
Run Code Online (Sandbox Code Playgroud)
小智 38
我使用以下任一方法:
:CheckOS
IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT)
:64BIT
echo 64-bit...
GOTO END
:32BIT
echo 32-bit...
GOTO END
:END
Run Code Online (Sandbox Code Playgroud)
或者我设置bit变量,我稍后在我的脚本中使用该变量来运行正确的设置.
:CheckOS
IF EXIST "%PROGRAMFILES(X86)%" (set bit=x64) ELSE (set bit=x86)
Run Code Online (Sandbox Code Playgroud)
要么...
:CheckOS
IF "%PROCESSOR_ARCHITECTURE%"=="x86" (set bit=x86) else (set bit=x64)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
Thi*_*ryB 24
如果你只做这些,似乎工作:
echo "%PROCESSOR_ARCHITECTURE%"
Run Code Online (Sandbox Code Playgroud)
我发现这些脚本将根据OS体系结构(x64或x86)执行特定的操作:
@echo off
echo Detecting OS processor type
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" goto 64BIT
echo 32-bit OS
\\savdaldpm01\ProtectionAgents\RA\3.0.7558.0\i386\DPMAgentInstaller_x86 /q
goto END
:64BIT
echo 64-bit OS
\\savdaldpm01\ProtectionAgents\RA\3.0.7558.0\amd64\DPMAgentInstaller_x64 /q
:END
"C:\Program Files\Microsoft Data Protection Manager\DPM\bin\setdpmserver.exe" -dpmservername sa
Run Code Online (Sandbox Code Playgroud)
试着找一个没有GOTO的方法请...
对于使用Unix系统的人来说,uname -m可以做到这一点.
*** Start ***
@echo off
Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
REG.exe Query %RegQry% > checkOS.txt
Find /i "x86" < CheckOS.txt > StringCheck.txt
If %ERRORLEVEL% == 0 (
Echo "This is 32 Bit Operating system"
) ELSE (
Echo "This is 64 Bit Operating System"
)
*** End ***
Run Code Online (Sandbox Code Playgroud)
参考http://support.microsoft.com/kb/556009
如果您以管理员身份运行脚本,则该脚本可以使用 wmic 命令。
FOR /f "tokens=2 delims==" %%f IN ('wmic os get osarchitecture /value ^| find "="') DO SET "OS_ARCH=%%f"
IF "%OS_ARCH%"=="32-bit" GOTO :32bit
IF "%OS_ARCH%"=="64-bit" GOTO :64bit
ECHO OS Architecture %OS_ARCH% is not supported!
EXIT 1
:32bit
ECHO "32 bit Operating System"
GOTO :SUCCESS
:64bit
ECHO "64 bit Operating System"
GOTO :SUCCESS
:SUCCESS
EXIT 0
Run Code Online (Sandbox Code Playgroud)
PROCESSOR_ARCHITECTURE=x86
Run Code Online (Sandbox Code Playgroud)
将出现在 Win32 上,并且
PROCESSOR_ARCHITECTURE=AMD64
Run Code Online (Sandbox Code Playgroud)
将出现在 Win64 上。
如果您反常地运行 32 位cmd.exe进程,那么 Windows 会提供两个环境变量:
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=AMD64
Run Code Online (Sandbox Code Playgroud)
'ProgramFiles(x86)' 是仅在 Windows 64 位机器上由 cmd.exe(32 位和 64 位版本)自动定义的环境变量,所以试试这个:
@ECHO OFF
echo Check operating system ...
if defined PROGRAMFILES(X86) (
echo 64-bit sytem detected
) else (
echo 32-bit sytem detected
)
pause
Run Code Online (Sandbox Code Playgroud)
在命令提示符下运行以下命令:
开始 -> 运行 -> 键入cmd并在结果黑框中输入以下命令:
wmic os get osarchitecture
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148242 次 |
| 最近记录: |