无忧启动论坛

标题: cmd命令findstr求助,运行到最后没有输出 [打印本页]

作者: woshilzz    时间: 2023-11-26 07:48
标题: cmd命令findstr求助,运行到最后没有输出
本帖最后由 woshilzz 于 2023-11-26 07:50 编辑

命令如下,保存为bat文件即可,发帖的时候没有找到代码编辑器,只能这样贴出来了
@echo off
setlocal enabledelayedexpansion
systeminfo|findstr /C:"OS 名称" >%tmp%\tmp.txt
for /f "usebackq delims=" %%i in ("%tmp%\tmp.txt") do set OSver=%%i
echo 版本0: %OSver%
set OSver=%OSver:OS 名称:=%
echo 测试1: %OSver%
set OSver=%OSver: =%
echo 测试2: %OSver%

for /f "tokens=*" %%a in ('echo %OSver%^|findstr "10"') do set OsNum = %%a
echo 测试3-查找结果:%OsNum%

最后一行测试3 找不到输入结果,想在变量中用findstr匹配到10这个数字,请问应该怎么修改?




作者: hua_wuxin    时间: 2023-11-26 09:22
set OsNum = %%a

等号两边的空格去掉

另外你测试3找到的会是包含“10”的整行内容,和测试2一样
作者: nttwqz    时间: 2023-11-26 09:57
  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. ::获取显示版本名称,例如22H2、21H2、20H2、2004、1909、1903等
  4. for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "DisplayVersion" 2^>nul') do set "displayversion=%%a"
  5. ::获取版本名称,例如Core、Professional、Enterprise、EnterpriseG等
  6. for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID" 2^>nul') do set "editionid=%%a"
复制代码


中文名称用if转换一下。
作者: szwp    时间: 2023-11-26 10:04
10的双引号去掉
作者: nathan6498    时间: 2023-11-26 11:36
没有玩过
作者: tanglf    时间: 2023-11-26 14:26
可以试一下
作者: 无犹启动    时间: 2024-2-7 10:42
没有玩过
作者: tilltotell007    时间: 2024-2-15 02:00
学习了




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3