Board logo

标题: [系统相关] [已解决]批处理for命令怎样只获取命令返回内容的第一行? [打印本页]

作者: Hello123World    时间: 2011-2-19 17:31     标题: [已解决]批处理for命令怎样只获取命令返回内容的第一行?

  1. @echo off
  2. for /f "skip=1 delims=. tokens=1" %%i in ('Wmic Path Win32_NTLogEvent where
  3. "EventCode=6005" get TimeGenerated') do set a=%%i
  4. pause
复制代码
想利用for获取最后一次开机时间

[ 本帖最后由 Hello123World 于 2011-2-19 19:12 编辑 ]
作者: wc726842270    时间: 2011-2-19 17:39

如果“最后一次开机时间”是最后一行的话,就在PAUSE前加个ECHO %A%
作者: wc726842270    时间: 2011-2-19 17:47

没有试过(也试不了)
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. for /f "skip=1 delims=. tokens=1" %%i in ('Wmic Path Win32_NTLogEvent where
  4. "EventCode=6005" get TimeGenerated') do (set /a N+=1&SET !N!_=%%i)
  5. set 2_
  6. pause
复制代码

[ 本帖最后由 wc726842270 于 2011-2-19 17:58 编辑 ]
作者: Batcher    时间: 2011-2-19 18:43

  1. @echo off
  2. for /f "skip=1 delims=." %%i in ('Wmic Path Win32_NTLogEvent where "EventCode=6005" get TimeGenerated') do (
  3.     set a=%%i
  4.     goto :next
  5. )
  6. :next
  7. echo %a%
  8. pause
复制代码

作者: Hello123World    时间: 2011-2-19 18:58     标题: 回复 4楼 的帖子

for 中能加goto的啊。
batcher亲自出马了!
作者: CrLf    时间: 2011-2-19 20:20

最后一次开机的日期时间肯定最大嘛,可以用sort
  1. @echo off
  2. for /f "skip=1 delims=." %%i in ('Wmic Path Win32_NTLogEvent where "EventCode=6005" get TimeGenerated^|sort') do  set a=%%i
  3. echo %a%
复制代码

作者: Hello123World    时间: 2011-2-20 14:06     标题: 回复 6楼 的帖子

你的算法很好,但是回显的结果是:TimeGenerated

怎么解决?




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2