无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3021|回复: 10
打印 上一主题 下一主题

[求助] 从补丁文件获取系统版本,怎么只取最后一个值?(已解决)

[复制链接]
跳转到指定楼层
1#
发表于 2022-3-13 19:06:46 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 窄口牛 于 2022-3-14 07:24 编辑
  1. for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  2.     if exist %%i:\windows\winsxs\*_microsoft-windows-servicingstack_31bf3856ad364e35_* (
  3.         if defined oslist (
  4.             set "oslist=!oslist! %%i"
  5.         ) else (
  6.             set "oslist=%%i"
  7.         )
  8.         for /f "tokens=4 delims=_" %%a in ('dir /b /d %%i:\windows\winsxs\*_microsoft-windows-servicingstack_31bf3856ad364e35_* /on^|find "serv"') do (
  9.             set "winver_%%i=%%a"
  10.         )
  11.     )
  12. )

  13. if defined oslist for %%a in (!oslist!) do (
  14.     for %%b in (!winver_%%a!) do (
  15.         echo;%%a    %%b
  16.     )
  17. )
  18. pause
复制代码
xp也会有winsxs,所以必须比较完整的路径判断。
2#
 楼主| 发表于 2022-3-14 07:19:51 | 显示全部楼层
本帖最后由 窄口牛 于 2022-3-14 07:25 编辑

可以了。for一套就晕了。应该没有写过,这种判断方法未见有人公开过。

点评

这么写,估计你能看明白,for是从外到内,从c开始会将do后面()内的执行一遍,然后是d,再将do后面()内的执行一遍,最后是e,即使是用了相同的变量%%a也是如此。文本文件也是如此,是一行文本do后面()的就会执  详情 回复 发表于 2022-3-14 10:29
回复

使用道具 举报

3#
 楼主| 发表于 2022-3-14 10:35:19 来自手机 | 显示全部楼层
这个知道,主要是不会控制执行次数,也就是要组合还是只排列。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-31 14:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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