无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6687|回复: 25
打印 上一主题 下一主题

[求助] 请大神写个批处理,1判断系统版本,2根据系统版本安装离线.net

[复制链接]
跳转到指定楼层
1#
发表于 2022-5-8 10:30:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1000无忧币
本帖最后由 享β亻寸木东 于 2022-5-8 21:20 编辑

半吊子技术员小白一枚(白里透红)
请大神写个批处理,1判断系统版本,2根据系统版本安装离线.net

想解决的问题:很多系统未启用.net3.5,让批处理自动安装对应版本(1776*、1836*、1904*、2200*)的.net3.5
1判断系统版本比如“Microsoft Windows [版本 10.0.19044.1645]”
2根据系统版本安装离线.net3.5
执行:dism.exe /online /enable-feature /featurename:netfx3 /Source:C:\1904   备注(C:\1904文件夹里是离线net.3.5)
如果是22000执行:dism.exe /online /enable-feature /featurename:netfx3 /Source:C:\2200

万分谢谢


能运行了,一点都不谨慎,不完美,先凑合凑合
@ECHO off

::系统版本号判断
for /f "tokens=2 delims=[]" %%Q in ('ver') do for /f "tokens=2-4 delims=. " %%R in ("%%Q") do set "ver=%%R%%S"&set "verbuild=%%T"

if %verbuild% EQU 17763 goto 1776X

if %verbuild% EQU 18362 goto 1836X
if %verbuild% EQU 18363 goto 1836X

if %verbuild% EQU 19042 goto 1904X
if %verbuild% EQU 19043 goto 1904X
if %verbuild% EQU 19044 goto 1904X

if %verbuild% EQU 22000 goto 2200X


:1776X
set BB=1776X
::启用NetFx3
if exist "%~d0\.NTE\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NTE\%BB%"
exit
:1836X
set BB=1836X
::启用NetFx3
if exist "%~d0\.NTE\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NTE\%BB%"
exit
:1904X
set BB=1904X
::启用NetFx3
if exist "%~d0\.NTE\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NTE\%BB%"
exit
:2200X
set BB=2200X
::启用NetFx3
if exist "%~d0\.NTE\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NTE\%BB%"
exit

最佳答案

查看完整内容

如果确有必要区分的话
2#
发表于 2022-5-8 10:30:39 | 只看该作者
如果确有必要区分的话

  1. ::系统版本号判断
  2. for /f "tokens=2 delims=[]" %%Q in ('ver') do for /f "tokens=2-4 delims=. " %%R in ("%%Q") do set "ver=%%R%%S"&set "verbuild=%%T"

  3. ::获取显示版本名称,例如21H2、20H2、1909、1903等
  4. for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "DisplayVersion"') do set "displayversion=%%a"

  5. ::区分Win10、Win11
  6. if %ver%==100 (
  7.     if %verbuild% lss 22000 (
  8.         set ab=10
  9.     ) else (
  10.         set ab=11
  11.     )
  12. )

  13. ::启用NetFx3,sxs版本自动适配,sxs文件夹命名方法:sxs\11\22H1、sxs\10\21H2、sxs\10\1909
  14. if exist "%~dp0\sxs\%ab%\%displayversion%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~dp0\sxs\%ab%\%displayversion%"
复制代码

点评

用了这个,加上胡拼乱凑,反正能运行了,谢谢!  详情 回复 发表于 2022-5-8 21:14
回复

使用道具 举报

3#
发表于 2022-5-8 10:39:09 | 只看该作者
本帖最后由 chishingchan 于 2022-5-8 13:44 编辑
  1. @echo off
  2. rem 以下行返回:版本 10.0.22000.434
  3. for /f "tokens=2 delims=[]" %%i in ('ver') do @set FullVer=%%i

  4. :: 测试用!set FullVer=版本 10.0.22000.434

  5. rem 以下行返回:10
  6. for /f "tokens=2 delims=. " %%i in ('echo %FullVer%') do @set SVer=%%i
  7. rem 以下行返回:22000
  8. for /f "tokens=4 delims=. " %%i in ('echo %FullVer%') do @set MVer=%%i
  9. :: echo %FullVer%
  10. :: echo %SVer%
  11. :: echo %MVer%

  12. if %SVer% NEQ 10 goto Error1

  13. if %MVer% EQU 22000 goto OK1
  14. :: .
  15. :: .
  16. :: .

  17. :OK1
  18. echo 子版本号是 22000
  19. goto 2200
  20. goto End

  21. :2200
  22. echo 执行程序
  23. goto End

  24. :Error1
  25. echo 本批处理不支持 Windows 10 以下系统!
  26. :: .
  27. :: .
  28. :: .

  29. :End
  30. pause
复制代码

点评

谢谢,我研究研究!  详情 回复 发表于 2022-5-8 14:04
回复

使用道具 举报

4#
发表于 2022-5-8 10:44:26 | 只看该作者
pecmd不行吗

点评

尽量用批处理CMD吧  详情 回复 发表于 2022-5-8 11:00
回复

使用道具 举报

5#
 楼主| 发表于 2022-5-8 11:00:13 | 只看该作者

尽量用批处理CMD吧
回复

使用道具 举报

6#
 楼主| 发表于 2022-5-8 11:18:28 | 只看该作者
nttwqz 发表于 2022-5-8 11:11
楼主是否用于SetupComplete.cmd,我这里有现成的。

谢谢  我找桌面环境下的

点评

唉,看来你一点儿不会儿,稍微编辑一下不就好了。  详情 回复 发表于 2022-5-8 11:25
回复

使用道具 举报

7#
发表于 2022-5-8 11:25:26 | 只看该作者
享β亻寸木东 发表于 2022-5-8 11:18
谢谢  我找桌面环境下的

唉,看来你一点儿不会儿,稍微编辑一下不就好了。

  1. ::获取显示版本名称,例如21H2、20H2、1909、1903等
  2. for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "DisplayVersion"') do set "displayversion=%%a"

  3. ::启用NetFx3,sxs版本自动适配,sxs文件夹命名方法:sxs\21H2、sxs\1909
  4. if exist "%~dp0\sxs\%displayversion%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~dp0\sxs\%displayversion%"
复制代码

点评

哦 谢谢 那win11的21H2怎么识别?  详情 回复 发表于 2022-5-8 11:32
回复

使用道具 举报

8#
 楼主| 发表于 2022-5-8 11:32:15 | 只看该作者
nttwqz 发表于 2022-5-8 11:25
唉,看来你一点儿不会儿,稍微编辑一下不就好了。

哦  谢谢   那win11的21H2怎么识别?

点评

就目前来说,不需要识别。 你可能没有对比过,目前最新版10和11的sxs文件夹是一样的文件。。。  详情 回复 发表于 2022-5-8 11:42
回复

使用道具 举报

9#
发表于 2022-5-8 11:36:21 | 只看该作者
감사해요
回复

使用道具 举报

10#
发表于 2022-5-8 11:42:31 | 只看该作者
本帖最后由 nttwqz 于 2022-5-8 11:46 编辑
享β亻寸木东 发表于 2022-5-8 11:32
哦  谢谢   那win11的21H2怎么识别?

就目前来说,不需要识别。

你可能没有对比过,目前最新版10和11的sxs文件夹是一样的文件。。。
也正是因为这样,后来放弃了这种方法,因为一般都是安装最新版Win10,所以只需在无人值守文件中集成最新版的sxs文件夹就好,不需要再判断。一般电脑都是联网的,需要的时候会提示,离线不离线启用已经不在重要,除非内网或者单机。
回复

使用道具 举报

11#
发表于 2022-5-8 12:18:54 | 只看该作者
可以根据需要将下面的代码放在::启用NetFx3,sxs版本自动适配,sxs文件夹命名方法:sxs\11\22H1、sxs\10\21H2、sxs\10\1909前面

  1. ::假设Win10和Win11的23H2 23H1 22H2 22H1 21H2的sxs文件相同,强制指定替代,避免存放一堆相同的文件造成空间浪费
  2. ::此处仅举例,请自行测试哪些版本通用情况,已知目前10和11通用,觉得费劲可以放一堆版本。
  3. for %%a in (23H2 23H1 22H2 22H1 21H2) do if /i "%displayversion%"=="%%a" (
  4.     set ab=10
  5.     set displayversion=21H2
  6. )
复制代码


点评

非常感谢!抽空捣鼓捣鼓  详情 回复 发表于 2022-5-8 13:58
回复

使用道具 举报

12#
 楼主| 发表于 2022-5-8 13:58:18 | 只看该作者
nttwqz 发表于 2022-5-8 12:18
可以根据需要将下面的代码放在::启用NetFx3,sxs版本自动适配,sxs文件夹命名方法:sxs\11\22H1、sxs\10\21 ...

非常感谢!抽空捣鼓捣鼓
回复

使用道具 举报

13#
 楼主| 发表于 2022-5-8 14:04:11 | 只看该作者
本帖最后由 享β亻寸木东 于 2022-5-8 14:42 编辑

谢谢,我研究研究!不太懂,不会用
回复

使用道具 举报

14#
发表于 2022-5-8 14:08:17 | 只看该作者
我研究研究!
回复

使用道具 举报

15#
发表于 2022-5-8 18:52:53 | 只看该作者
帮顶起来
回复

使用道具 举报

16#
发表于 2022-5-8 20:52:25 | 只看该作者
我觉得撸主可以试试我的SWAI v2.1...

点评

感谢您的回复.感谢您的回复.  详情 回复 发表于 2022-5-8 21:12
回复

使用道具 举报

17#
发表于 2022-5-8 21:06:13 | 只看该作者

帮顶起来

点评

感谢您的回复.感谢您的回复.  详情 回复 发表于 2022-5-8 21:12
回复

使用道具 举报

18#
 楼主| 发表于 2022-5-8 21:12:21 | 只看该作者
邪恶海盗 发表于 2022-5-8 20:52
我觉得撸主可以试试我的SWAI v2.1...

感谢您的回复.感谢您的回复.
回复

使用道具 举报

19#
 楼主| 发表于 2022-5-8 21:12:33 | 只看该作者

感谢您的回复.感谢您的回复.
回复

使用道具 举报

20#
 楼主| 发表于 2022-5-8 21:14:10 | 只看该作者
nttwqz 发表于 2022-5-8 12:02
如果确有必要区分的话

用了这个,加上胡拼乱凑,反正能运行了,谢谢!

点评

画蛇添足了。。。 改成 如果你能确认除了最后一位前面版本相同能通用的话(我记得10 19044 和11的22000一样)  详情 回复 发表于 2022-5-8 21:42
回复

使用道具 举报

21#
发表于 2022-5-8 21:42:35 | 只看该作者
本帖最后由 nttwqz 于 2022-5-8 21:44 编辑
享β亻寸木东 发表于 2022-5-8 21:14
用了这个,加上胡拼乱凑,反正能运行了,谢谢!

画蛇添足了。。。

  1. if %verbuild% EQU 17763 goto 1776X

  2. if %verbuild% EQU 18362 goto 1836X
  3. if %verbuild% EQU 18363 goto 1836X

  4. if %verbuild% EQU 19042 goto 1904X
  5. if %verbuild% EQU 19043 goto 1904X
  6. if %verbuild% EQU 19044 goto 1904X

  7. if %verbuild% EQU 22000 goto 2200X


  8. :1776X
  9. set BB=1776X
  10. ::启用NetFx3
  11. if exist "%~d0\.NTE\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NTE\%BB%"
  12. exit
  13. :1836X
  14. set BB=1836X
  15. ::启用NetFx3
  16. if exist "%~d0\.NTE\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NTE\%BB%"
  17. exit
  18. :1904X
  19. set BB=1904X
  20. ::启用NetFx3
  21. if exist "%~d0\.NTE\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NTE\%BB%"
  22. exit
  23. :2200X
  24. set BB=2200X
  25. ::启用NetFx3
  26. if exist "%~d0\.NTE\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NTE\%BB%"
  27. exit
复制代码


改成

  1. for %%a in (17763 18362 18363 19042 19043 19044 22000) do if %verbuild% equ %%a set bb=%verbuild:~0,-1%X
  2. ::启用NetFx3
  3. if exist "%~d0\.NET\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NET\%BB%"
  4. exit
复制代码


如果你能确认除了最后一位前面版本相同能通用的话(我记得10 19044 和11的22000一样)

  1. set bb=%verbuild:~0,-1%X
  2. ::启用NetFx3
  3. if exist "%~d0\.NET\%BB%\*.*" dism /online /enable-feature /featurename:netfx3 /source:"%~d0\.NET\%BB%"
  4. exit
复制代码


另外,通过set定义的变量不分大小写,所以BB=bb

点评

你好 方便再发一下你的SetupComplete.cmd那个批处理吗?  详情 回复 发表于 2022-5-25 11:21
谢谢!!!谢谢!!!  详情 回复 发表于 2022-5-9 08:19
回复

使用道具 举报

22#
 楼主| 发表于 2022-5-9 08:19:41 | 只看该作者
本帖最后由 享β亻寸木东 于 2022-5-9 08:44 编辑
nttwqz 发表于 2022-5-8 21:42
画蛇添足了。。。

谢谢!!!通用
回复

使用道具 举报

23#
 楼主| 发表于 2022-5-25 11:21:40 | 只看该作者
nttwqz 发表于 2022-5-8 21:42
画蛇添足了。。。

你好  方便再发一下你的SetupComplete.cmd那个批处理吗?
回复

使用道具 举报

24#
发表于 2022-5-26 21:00:01 | 只看该作者
享β亻寸木东 发表于 2022-5-25 11:21
你好  方便再发一下你的SetupComplete.cmd那个批处理吗?

SetupComplete.7z (48.29 KB, 下载次数: 53)

点评

非常谢谢-------  详情 回复 发表于 2022-5-26 21:06
回复

使用道具 举报

25#
 楼主| 发表于 2022-5-26 21:06:30 | 只看该作者

非常谢谢-------
回复

使用道具 举报

26#
发表于 2022-6-28 19:22:03 | 只看该作者
试一下!!!!!!!!1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-1 06:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表