在cmd中的IF语句,如何使用当前时间显示错误

时间:2014-06-10 06:38:17

标签: batch-file vbscript cmd

我正在为学校系统的批处理文件中编写代码,代码显示学生何时更改了他/她的密码。 我遇到了系统问题,它显示所有学生用户名都更改了密码,但有些用户显示当前时间和日期。 我试图做一个if语句说:如果用户的日期和时间==当天的日期和时间。显示回显消息。

我已经尝试了很多代码,但似乎并不合适。

这是其中一个代码:

(for /f "delims=" %%i in ('net user %MyName% /domain ^| find /I "password last set"') do set MyResult=User 
%MyName%: %%i)

if "%DATE%-%TIME%" EQU "%MyResult%" echo "password not changed."

如果这个代码在vbs中是完美的,那么它也会非常有用。

提前谢谢你。 :)

1 个答案:

答案 0 :(得分:0)

这是您的VBScript。由于时间可能会在net user返回时略有变化,并且您有机会对其进行测试,因此该脚本会检查它是否在当前日期和时间的10秒内。您可以根据需要随意调整阈值。

' Create the command string...
strCommand = "cmd /c net user " & strUser & " /domain | find ""Password last set"""

' Run the command and capture its output...
strOut = CreateObject("WScript.Shell").Exec(strCommand).StdOut.ReadAll

' Remove the label ("Password last set") leaving only the date and time...
strOut = Trim(Mid(strOut, Len("Password last set") + 1))

If IsDate(strOut) Then
    If Abs(DateDiff("s", strOut, Date)) < 10 Then

        ' Password set within last 10 seconds

    End If
End If