获取当前用户登录时间(CMD 批处理)

获取当前用户登录时间(CMD 批处理)

操作系统:Windows 7,Windows 8,Windows 8.1

使用 Windows 命令行,我可以使用命令查看当前用户的登录时间quser。这导致输出比我想要的更多,所以我希望使用for skiptokens仅获取登录时间和日期。

举个例子

c:\quser.exe
--------------------------
USERNAME         SESSIONNAME     ID    STATE      IDLE TIME      LOGON TIME
GenericUser      console         1     Active     1:22           03/11/2015 1:45 PM

使用for,我可以缩小这个范围,但它将日期和时间之间的空格作为分隔符,因此只给我日期:

c:\for /f "skip=1 tokens=6" %a in ('quser') do echo %a
--------------------------
03/11/2015

请注意,输出缺少“1:45 PM”。值得注意的是,我无法指定多个标记,因为只有 6 个标题,所以我无法从第二行获取第 7 个标记。我该如何修改它以收集时间和日期?

*不要担心计算 datediff,因为一旦我可以正确收集它,我就会在 VBScript 中处理它。

提前致谢,Beems

答案1

首先你从第二行获取第 7 个标记:
for /f "skip=1 tokens=7" %a in ('quser') do @echo %aproduces1:45
但您也可以使用 a*将所有内容获取到行尾:
for /f "skip=1 tokens=5*" %a in ('quser') do @echo %bproduces:03/11/2015 1:45 PM
我认为这就是您想要的。

help for

如果 tokens= 字符串中的最后一个字符是星号,则会分配一个额外的变量并接收解析最后一个标记后该行上的剩余文本。

相关内容