Bee*_*ems 1 windows-7 batch vbscript cmd.exe
操作系统:Windows 7、Windows 8、Windows 8.1
使用 Windows 命令行,我可以使用该quser命令查看当前用户的登录时间。这会导致比我想要的更多的输出,所以我希望使用for skip并tokens仅获取登录时间和日期。
举个例子
c:\quser.exe
--------------------------
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
GenericUser console 1 Active 1:22 03/11/2015 1:45 PM
Run Code Online (Sandbox Code Playgroud)
使用for,我可以减少它,但它以日期和时间之间的空格作为分隔符,因此只给我日期:
c:\for /f "skip=1 tokens=6" %a in ('quser') do echo %a
--------------------------
03/11/2015
Run Code Online (Sandbox Code Playgroud)
请注意,输出缺少“1:45 PM”。值得注意的是,我无法指定多个标记,因为只有 6 个标头,因此我无法从第二行获取第 7 个标记。如何修改它以收集时间和日期?
*不要担心计算日期差异,因为一旦我可以正确收集它,我将在 VBScript 中处理它。
提前致谢,比姆斯
首先,您可以从第二行获得第 7 个标记:
for /f "skip=1 tokens=7" %a in ('quser') do @echo %a生产,1:45
但您也可以使用 a*将所有内容都放到行尾:
for /f "skip=1 tokens=5*" %a in ('quser') do @echo %b生产:03/11/2015 1:45 PM
我认为这就是您所追求的。
来自help for:
如果tokens= 字符串中的最后一个字符是星号,则分配一个附加变量并在解析最后一个标记后接收行上的剩余文本。