woshilzz 发表于 2023-11-26 07:48:11

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:11

set OsNum = %%a
等号两边的空格去掉

另外你测试3找到的会是包含“10”的整行内容,和测试2一样

nttwqz 发表于 2023-11-26 09:57:52

::系统版本号判断
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"

::获取显示版本名称,例如22H2、21H2、20H2、2004、1909、1903等
for /f "skip=2 tokens=3" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "DisplayVersion" 2^>nul') do set "displayversion=%%a"
::获取版本名称,例如Core、Professional、Enterprise、EnterpriseG等
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:24

10的双引号去掉

nathan6498 发表于 2023-11-26 11:36:02

没有玩过

tanglf 发表于 2023-11-26 14:26:15

可以试一下

无犹启动 发表于 2024-2-7 10:42:22

没有玩过

tilltotell007 发表于 2024-2-15 02:00:14

学习了
页: [1]
查看完整版本: cmd命令findstr求助,运行到最后没有输出