找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 37189|回复: 11

[其他] [已解决】请教下,单行回显systeminfo信息的批处理代码应该怎么改?

[复制链接]
发表于 2015-7-20 15:05:23 | 显示全部楼层 |阅读模式
本帖最后由 chouxia 于 2015-7-21 12:12 编辑
  1. @for /f "tokens=1,* delims=:"  %a in ('systeminfo ^| find "产品 ID:"') do (@set kk=%b)&&@echo %%kk:~10%%
复制代码
回显是:
C:\Users\Administrator>()  &&
%xxxx-OEM-xxxxxxx-xxxxxx%
我的想法是在单行完美回显这个信息。
去掉额外的()&&%%这些东西

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-7-20 15:45:22 | 显示全部楼层
  1. @cmd /v:on /c "for /f "tokens=1,* delims=:"  %a in ('systeminfo ^| find "产品 ID:"') do @set kk=%b && echo !kk:~10!"
复制代码
 楼主| 发表于 2015-7-20 15:48:31 | 显示全部楼层
不行啊
回显:

C:\Users\Administrator>@for /f "tokens=1,* delims=:"  %a in ('systeminfo ^| find
"产品 ID:"') do @(set kk=%b && echo %kk:~10%)
%kk:~10%
 楼主| 发表于 2015-7-20 15:50:12 | 显示全部楼层
本帖最后由 chouxia 于 2015-7-20 15:53 编辑

改成
@for /f "tokens=1,* delims=:"  %a in ('systeminfo ^| find "产品 ID:"') do @(set kk=%b && @echo %kk:~10%)
ok了
不过回显还是有%
额外问句
为什么要在do后面 的括号外面+@
发表于 2015-7-20 15:51:49 | 显示全部楼层
  1. for /f "tokens=1* delims=:" %a in ('systeminfo ^| find "产品 ID:"') do @for %a in (%b) do @echo %a
复制代码

评分

参与人数 1技术 +1 收起 理由
chouxia + 1 乐于助人

查看全部评分

 楼主| 发表于 2015-7-20 15:55:17 | 显示全部楼层
回复 5# aa77dd@163.com


    @for %a in (%b) do @echo %a
这段代码可以去掉空格吗?
能说下原理吗?
发表于 2015-7-20 15:59:00 | 显示全部楼层
回复 6# chouxia

运行下这个你就知道了
  1. for %a in (     abc      ) do echo [%a]
复制代码
 楼主| 发表于 2015-7-20 16:02:19 | 显示全部楼层
systeminfo ^| find "产品 ID:"这段为什么没有去掉空格?
只有for本身会屏蔽空格吗?
发表于 2015-7-20 16:09:25 | 显示全部楼层
  1. @for /f "tokens=3 delims=: "  %a in ('systeminfo ^| find "产品 ID:"') do @(echo %a)
复制代码
发表于 2015-7-20 16:18:07 | 显示全部楼层
本帖最后由 aa77dd@163.com 于 2015-7-20 16:41 编辑

9楼很精简了, 但最后的括号还可以去掉, 而且 : 也没必要做分隔符了
  1. for /f "tokens=3 delims= "  %a in ('systeminfo ^| find "产品 ID:"') do @echo %a
复制代码
如果仅仅要显示 ProductId 的信息, 访问注册表更快,  find "产品 ID:"  含有中文,  会依赖于当前活动代码页
  1. for /f "skip=2 delims=" %a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductId') do @for /f "tokens=3" %a in ("%a") do @echo %a
复制代码

评分

参与人数 1技术 +1 收起 理由
chouxia + 1 乐于助人

查看全部评分

发表于 2015-7-20 16:25:40 | 显示全部楼层
回复 3# chouxia


    2楼代码已更新,你再试试。

评分

参与人数 1技术 +1 收起 理由
chouxia + 1 乐于助人

查看全部评分

发表于 2015-7-20 21:23:21 | 显示全部楼层
  1. @for /f "tokens=1,* delims=:" %a in ('systeminfo^|find "产品 ID:"') do @set kk=%b&call echo %kk:~10%
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 22:45 , Processed in 0.021809 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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