标题: [系统相关] [已解决]批处理命令for /f 如何只提取第二行? [打印本页]
作者: stealthfire 时间: 2014-9-16 00:58 标题: [已解决]批处理命令for /f 如何只提取第二行?
本帖最后由 stealthfire 于 2014-9-16 12:39 编辑
我在命令列打入wmic bios get serialnumber
結果:
SerialNumber
XXXXXXXXXXXX
(空行)
我嘗試提取第二行,內容如下:- @echo off
- for /f "skip=1" %%i in ('wmic bios get serialnumber') do echo %%i
- pause
复制代码
結果:
XXXXXXXXXXXX
echo is off.
Press any key to continue...
請問我如何只提取第二行?
作者: Batcher 时间: 2014-9-16 06:02
- @echo off
- for /f "skip=1" %%i in ('wmic computersystem get name') do (
- set sn=%%i
- goto :next
- )
-
- :next
- echo,%sn%
- pause
复制代码
作者: stealthfire 时间: 2014-9-16 10:37
成功了,謝謝.
我想問為什麼把sn=%%i再離開迴圈輸出會沒有了第三行?
作者: Linuxer 时间: 2014-9-16 10:53
回复 3# stealthfire 复制代码
for循环内有goto语句,跳转到next后就退出了。也就是说,for循环只执行了一次就退出。所有只取了第二行。
也可以这样:- @echo off
- for /f "skip=1" %%i in ('wmic bios get serialnumber') do echo %%i&pause&goto :eof
复制代码
作者: stealthfire 时间: 2014-9-16 11:46
明白了,謝謝.
我更改了,代碼如下:- @echo off
- for /f "skip=1" %%i in ('wmic bios get serialnumber') do (
- set sn=%%i
- goto next
- )
- :next
- set sn=%sn%
-
- ---中略---
-
- :inv
- echo %computername% %sn% >inventory.txt
- pause
复制代码
作者: Linuxer 时间: 2014-9-16 12:26
回复 5# stealthfire
嗯,可以,代码没问题。
作者: stealthfire 时间: 2014-9-16 12:39
回复 6# Linuxer
謝謝你的測試.
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |