2012雨晨绿软 发表于 2017-3-10 12:35:23

怎样用类似 Windows 10 Pro 赋给%%a 不要前面空格

本帖最后由 2012雨晨绿软 于 2017-3-10 15:01 编辑

for /f "skip=2 tokens=2 delims=REG_SZ    " %%a in ('reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do set OOS=%%a
echo %OOS%

结果:“   Windows 10 Pro”如何得到“Windows 10 Pro”而不要前面的空格呢? 不要set OOS=%%a %%b %%c这样的
因为:“   Windows 10 Pro” 可能是“   Windows Server 2016 Datacenter”



下为reg QUERY中一个例子
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    ProductName    REG_SZ    Windows 10 Pro

搞定了

for /f "skip=2 delims=" %%a in ('reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do set OOS=%%a
set OOS=%OOS:~29%
echo %OOS%
pause

slore 发表于 2017-3-10 14:26:53

2012雨晨绿软 发表于 2017-3-10 13:23
已经测试是只显示windows 没了
但你的代码再精简些就好了 我是要加入长批中用的

@echo off
for /f "skip=2 delims=" %%a in ('reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do (
set OOS=%%a
)
set OOS=%OOS:~29%
echo %OOS%

slore 发表于 2017-3-10 13:03:15

第一: delims=REG_SZ 是错误的用法,这样是按照,R,E,G,_,S,Z, 各个字符分割,如果有以上字符就会错误,比如Server的S。

第二:
not good, but work

@echo off
for /f "skip=2 delims=" %%a in ('reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do (
call :GETPN %%a
)
echo %OOS%

pause
goto:EOF

:GETPN
set OOS=%3
:SHIFT_PARAM
shift
if "%3"=="" goto :EOF
call set OOS=%OOS% %3
goto :SHIFT_PARAM

2012雨晨绿软 发表于 2017-3-10 13:12:24

slore 发表于 2017-3-10 13:03
第一: delims=REG_SZ 是错误的用法,这样是按照,R,E,G,_,S,Z, 各个字符分割,如果有以上字符就会错误,比如 ...

SEVER系统会出错吗?我还没测试,当前是专业版没发现异常,给你评分、等我再测试下如果出错,谢谢热心,另外能不能再简洁些呢?

2012雨晨绿软 发表于 2017-3-10 13:23:16

slore 发表于 2017-3-10 13:03
第一: delims=REG_SZ 是错误的用法,这样是按照,R,E,G,_,S,Z, 各个字符分割,如果有以上字符就会错误,比如 ...

已经测试是只显示windows 没了
但你的代码再精简些就好了 我是要加入长批中用的

slore 发表于 2017-3-10 15:01:31

2012雨晨绿软 发表于 2017-3-10 13:23
已经测试是只显示windows 没了
但你的代码再精简些就好了 我是要加入长批中用的

名字和类型是固定的话,直接在8截断空格就行了。

@echo off
for /f "skip=2 delims=" %%a in ('reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do (
set OOS=%%a
)
set OOS=%OOS:~29%
echo %OOS%

2012雨晨绿软 发表于 2017-3-10 15:04:53

本帖最后由 2012雨晨绿软 于 2017-3-10 15:06 编辑

slore 发表于 2017-3-10 15:01
名字和类型是固定的话,直接在8截断空格就行了。
非常感谢,我也是一急只想先分列再截取了 其实只需要从左向右截取就行了{:2_127:}
页: [1]
查看完整版本: 怎样用类似 Windows 10 Pro 赋给%%a 不要前面空格