gpt4 book ai didi

windows - 批处理文件帮助 : determining version to decide action

转载 作者:可可西里 更新时间:2023-11-01 10:46:31 24 4
gpt4 key购买 nike

随着我们的办公室升级到 Window 7,我的任务是更新登录脚本以与 Windows 7 一起使用。所述脚本的创建者早已不复存在,我不是批处理文件专家。

我要做的是确定操作系统。当我执行一些网络管理职责时,我需要能够在不运行登录脚本的情况下登录到服务器,而如果我登录到 Windows XP 或 Windows 7 计算机,我将需要运行登录脚本。

我发现我无法使用 VER 命令,因为 Windows 7 和 Windows Server 2008 返回完全相同的结果。

这是我的:

if exist %loginscriptdir%\sysinfo.txt goto setver
if not exist %loginscriptdir%\sysinfo.txt wmic os get name /value > %loginscriptdir%\sysinfo.txt
type %loginscriptdir%\sysinfo.txt > %loginscriptdir%\sysinfo1.txt

:setver
set WinVer=Unknown
set errorlevel=0

If %WinVer% == "Unknown" (
findstr /c:"Windows XP Professional" %loginscriptdir%\sysinfo1.txt
if %errorlevel%==1 set WinVer=XP
) else (
findstr /c:"Windows 7 Enterprise" %loginscriptdir%\sysinfo1.txt
if %errorlevel%==1 set WinVer=Win7
)

set result=false
if %WinVer% == "XP" set result=true
if %WinVer% == "Win7" set result=true
if "%result%" == "false" (
goto skipicon1

在整个脚本中,我在中断中写入以查找值。示例:

REM -----
ECHO "%WinVer%"
ECHO "%result%"
ECHO "%errorlevel%"
ECHO Press any key to continue 4.
pause>null
REM -----

第四个中断出现在我上面粘贴的脚本的末尾。这些是结果:

"Unknown"
"false"
"0"
Press any key to continue 4.

最佳答案

给你。这是我发现从 win2kpro-winserver2k10 准确获取操作系统的最佳方法。它还会告诉它是否是 32/64 位以及安装了什么 sp,但您不必这样做。只需检查本示例中的 %cap%。

@echo off
setlocal

call :GetOS cap bit sp
echo %cap%%bit% (%sp%)
exit /b


:GetOS caption servicepack
setlocal
set arc=%PROCESSOR_ARCHITECTURE%
set key="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
for /f "tokens=3*" %%a in (
'reg query %key%^|findstr /i ProductName') do set cap=%%a %%b
for /f "tokens=3*" %%a in (
'reg query %key%^|findstr /i CSDVersion') do set sp=%%a %%b
endlocal & set %1=%cap% & set %2=%arc% & set %3=%sp%
exit /b

关于windows - 批处理文件帮助 : determining version to decide action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22460227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com