我正在为学校系统的批处理文件中编写代码,代码显示学生何时更改了他/她的密码。 我遇到了系统问题,它显示所有学生用户名都更改了密码,但有些用户显示当前时间和日期。 我试图做一个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中是完美的,那么它也会非常有用。
提前谢谢你。 :)
答案 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