标题: [文本处理] [已解决]输出cpu processorid和diskdrive serialnumber拼接后的字符串 [打印本页]
作者: lbc31502 时间: 2014-11-3 14:32 标题: [已解决]输出cpu processorid和diskdrive serialnumber拼接后的字符串
本帖最后由 lbc31502 于 2014-11-3 16:31 编辑
我想输出cpu processorid和diskdrive serialnumber拼接后的字符串,代码如下- @echo off & setlocal EnableDelayedExpansion
-
- set "sig=0"
- for /f "tokens=*" %%i in ('wmic cpu get ProcessorId') do (
- set /a sig+=1
- if !sig! GEQ 2 set "cpuid=!cpuid!%%i"
- )
-
- set "sig=0"
- for /f "tokens=*" %%i in ('wmic diskdrive get serialnumber') do (
- set /a sig+=1
- if !sig! GEQ 2 set "diskdrivenumber=!diskdrivenumber!%%i"
- )
-
- echo %cpuid%%diskdrivenumber%
- pause
复制代码
我diskdrive有两个,所以输出了三个字符串
结果如下:BF*******655 S1R*******718H W*******P45
可我不需要中间和末尾的几个空格,不知道该如何处理,求帮助
PS:遇到diskdrive出现类似w -d****这样中间有空格的情况,所以不能去除所有的空格
作者: apang 时间: 2014-11-3 15:26
把 "tokens=*" 删掉
作者: lbc31502 时间: 2014-11-3 15:30
回复 2# apang
那出现PS里面有空格的情况就无法输出空格后的内容了
作者: apang 时间: 2014-11-3 16:13
本帖最后由 apang 于 2014-11-3 16:15 编辑
那样的话,试试用find过滤- @echo off
- setlocal EnableDelayedExpansion
-
- for /f "tokens=1*delims==" %%i in ('wmic cpu get ProcessorId /value^|find "="') do (
- set "cpuid=!cpuid!%%j"
- )
-
- for /f "tokens=1*delims==" %%i in ('wmic diskdrive get serialnumber /value^|find "="') do (
- set "diskdrivenumber=!diskdrivenumber!%%j"
- )
-
- echo,%cpuid%%diskdrivenumber%
- pause
复制代码
作者: lbc31502 时间: 2014-11-3 16:30
回复 4# apang
非常感谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |