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

[文本处理] [已解决]输出cpu processorid和diskdrive serialnumber拼接后的字符串

[复制链接]
发表于 2014-11-3 14:32:14 | 显示全部楼层 |阅读模式
本帖最后由 lbc31502 于 2014-11-3 16:31 编辑

我想输出cpu processorid和diskdrive serialnumber拼接后的字符串,代码如下
  1. @echo off & setlocal EnableDelayedExpansion

  2. set "sig=0"
  3. for /f "tokens=*" %%i in ('wmic cpu get ProcessorId') do (
  4.         set /a sig+=1
  5.         if !sig! GEQ 2 set "cpuid=!cpuid!%%i"
  6. )

  7. set "sig=0"
  8. for /f "tokens=*" %%i in ('wmic diskdrive get serialnumber') do (
  9.         set /a sig+=1
  10.         if !sig! GEQ 2 set "diskdrivenumber=!diskdrivenumber!%%i"
  11. )

  12. echo %cpuid%%diskdrivenumber%
  13. pause
复制代码
我diskdrive有两个,所以输出了三个字符串
结果如下:BF*******655  S1R*******718H  W*******P45   
可我不需要中间和末尾的几个空格,不知道该如何处理,求帮助
PS:遇到diskdrive出现类似w -d****这样中间有空格的情况,所以不能去除所有的空格
发表于 2014-11-3 15:26:54 | 显示全部楼层
把 "tokens=*" 删掉
 楼主| 发表于 2014-11-3 15:30:00 | 显示全部楼层
回复 2# apang


    那出现PS里面有空格的情况就无法输出空格后的内容了
发表于 2014-11-3 16:13:00 | 显示全部楼层
本帖最后由 apang 于 2014-11-3 16:15 编辑

那样的话,试试用find过滤
  1. @echo off
  2. setlocal EnableDelayedExpansion

  3. for /f "tokens=1*delims==" %%i in ('wmic cpu get ProcessorId /value^|find "="') do (
  4.         set "cpuid=!cpuid!%%j"
  5. )

  6. for /f "tokens=1*delims==" %%i in ('wmic diskdrive get serialnumber /value^|find "="') do (
  7.         set "diskdrivenumber=!diskdrivenumber!%%j"
  8. )

  9. echo,%cpuid%%diskdrivenumber%
  10. pause
复制代码
 楼主| 发表于 2014-11-3 16:30:28 | 显示全部楼层
回复 4# apang


    非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 18:15 , Processed in 0.031034 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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