From 87301108df3f5fd933359e4d888cc573b11e1e69 Mon Sep 17 00:00:00 2001 From: bin456789 Date: Wed, 20 May 2026 21:25:30 +0800 Subject: [PATCH] =?UTF-8?q?windows:=20=E6=9B=B4=E5=87=86=E7=A1=AE=E5=9C=B0?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E9=95=9C=E5=83=8F=E7=B3=BB=E7=BB=9F=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trans.sh | 94 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/trans.sh b/trans.sh index a67ee5a..ef5376f 100644 --- a/trans.sh +++ b/trans.sh @@ -5681,49 +5681,58 @@ get_aws_repo() { fi } -get_client_name_by_build_ver() { - build_ver=$1 - - if [ "$build_ver" -ge 22000 ]; then - echo 11 - elif [ "$build_ver" -ge 10240 ]; then - echo 10 - elif [ "$build_ver" -ge 9600 ]; then - echo 8.1 - elif [ "$build_ver" -ge 9200 ]; then - echo 8 - elif [ "$build_ver" -ge 7600 ]; then - echo 7 - elif [ "$build_ver" -ge 6000 ]; then - echo vista - else - error_and_exit "Unknown Build Version: $build_ver" - fi -} - # 将 AC/SAC 版本号 转换为 LTSC 版本号 # 用于查找驱动 -get_server_name_by_build_ver() { - build_ver=$1 +get_windows_name_by_version() { + local nt_ver=$1 + local build_ver=$2 + local windows_type=$3 - if [ "$build_ver" -ge 26100 ]; then - echo 2025 - elif [ "$build_ver" -ge 20348 ]; then - echo 2022 - elif [ "$build_ver" -ge 17763 ]; then - echo 2019 - elif [ "$build_ver" -ge 14393 ]; then - echo 2016 - elif [ "$build_ver" -ge 9600 ]; then - echo 2012 r2 - elif [ "$build_ver" -ge 9200 ]; then - echo 2012 - elif [ "$build_ver" -ge 7600 ]; then - echo 2008 r2 - elif [ "$build_ver" -ge 6001 ]; then - echo 2008 + local windows_name + windows_name=$( + case "$windows_type" in + client) + case "$nt_ver" in + 10.0) + if [ "$build_ver" -ge 22000 ]; then + echo 11 + else + echo 10 + fi + ;; + 6.3) echo 8.1 ;; + 6.2) echo 8 ;; + 6.1) echo 7 ;; + 6.0) echo vista ;; + esac + ;; + + server) + case "$nt_ver" in + 10.0) + if [ "$build_ver" -ge 26100 ]; then + echo 2025 + elif [ "$build_ver" -ge 20348 ]; then + echo 2022 + elif [ "$build_ver" -ge 17763 ]; then + echo 2019 + else + echo 2016 + fi + ;; + 6.3) echo '2012 r2' ;; + 6.2) echo '2012' ;; + 6.1) echo '2008 r2' ;; + 6.0) echo '2008' ;; + esac + ;; + esac + ) + + if [ -n "$windows_name" ]; then + echo "$windows_name" else - error_and_exit "Unknown Build Version: $build_ver" + error_and_exit "Unknown Windows Version: $nt_ver $build_ver $windows_type" fi } @@ -6032,12 +6041,7 @@ install_windows() { # 检测 client/server,并转换成标准版 windows 名称 # 用于将 Hyper-V Server / Azure Stack HCI / Windows Server AC 的版本号转换成对应的 LTSC 版本号,用于查找驱动 windows_type=$(get_windows_type_from_windows_drive /wim) - product_ver=$( - case "$windows_type" in - client) get_client_name_by_build_ver "$build_ver" ;; - server) get_server_name_by_build_ver "$build_ver" ;; - esac - ) + product_ver=$(get_windows_name_by_version "$nt_ver" "$build_ver" "$windows_type") # 检测 sac 和 nvme {