Stapelverarbeitung: Liste der zuletzt verwendeten Dateien und deren Änderungsdatum

Stapelverarbeitung: Liste der zuletzt verwendeten Dateien und deren Änderungsdatum

Wenn Sie statt des vollständigen Kontexts eine einfache Erklärung meines Anliegens wünschen, lesen Sie einfach die fettgedruckten Texte.
Ich arbeite an einem Projekt, das einen alten Telnet-Server repliziert und auf Batch-Code basiert. Ich muss Folgendes erstellen:WHOBefehl, ein Befehl, der die letzten Benutzer auflistet und angibt, wie lange es her ist, dass sie einen Befehl eingegeben haben. Ich habe es so eingerichtet, dass jedes Mal, wenn ein Benutzer einen „Befehl“ ausführt, eine Variable in eine Datei in einem Ordner namens „Who“ ausgegeben wird, wobei onlineder Dateiname auf seinen Benutzernamen gesetzt ist. Damit der „Who“-Befehl funktioniert, muss ich nun in der Lage sein, zu verarbeiten, wie lange es her ist, dass der Befehl eingegeben wurde. Davon abgesehen möchte ich wirklich nur Benutzer anzeigen, die in den letzten fünf Minuten einen Befehl eingegeben haben.
Im Wesentlichen muss ich also Folgendes tun:

1] Ich muss in der Lage sein, Dateien aus einem Verzeichnis zu löschen, die älter als fünf Minuten sind.
2] Ich muss in der Lage sein, herauszufinden, wie lange eine Datei her ist(insbesondere die verbleibenden Dateien)wurde in einem Format wie diesem geändert: This file was modified 5 Minutes and 32 Seconds ago.Wenn die Datei erst vor 5 Sekunden geändert wurde, wäre das Format vorzugsweise ähnlich This file was modified 5 seconds ago.Und da die Datei vor einer Sekunde erstellt wurde, kann sie nicht abstürzen. Es ist mir egal, ob es heißt, created 0 seconds agoaber es kann nicht sagen created (blank) seconds ago.

Aufgrund der Art und Weise, wie es eingerichtet ist,nichtmüssen lokalabhängig sein. Hier ist ein Beispiel dafür, wie %time%und %date%auf meinem Computer eingestellt sind:Sat 03/23/2019, 17:49:47.98

Ursprünglich hatte ich es so eingestellt, dass es Datum und Uhrzeit ohne Doppelpunkte oder Schrägstriche in diese Dateien ausgibt, aber für mathematische Berechnungen war es nicht zuverlässig.

wie würde ich dabei vorgehen?

hier ist, was ich bisher hatte:

(Auszug aus dem gesamten Skript)

@echo off
setlocal EnableDelayedExpansion
set TME=%time::=%
set TME=%TME: =%
Set Compare=%date:~7,2%%TME:.=%
echo.
echo Recent Users:
for /f "tokens=*" %%A in ('dir /b ..\Online') do (
    for /f "usebackq" %%i in ("..\Online\%%A") do (
        set /a Value=%Compare% - %%i
        if !Value! LSS 90000 (
            if !value! LEQ 99 (
                echo %%A   !Value! ms ago
            ) ELSE (
                if !value! GTR 9999 (
                    echo %%A   !Value:~0,-4! minutes !Value:~1,-2! seconds ago.
                ) ELSE (
                    echo %%A   !Value:~0,-2! seconds ago.
                )
            )
        )
    )
)
endlocal
echo.

verwandte Informationen