Aktuellen Benutzer rechtzeitig anmelden (CMD-Stapel)

1

Betriebssystem: Windows 7, Windows 8, Windows 8.1

Über die Windows-Befehlszeile kann ich die Anmeldezeit des aktuellen Benutzers mit dem quserBefehl anzeigen . Dies führt zu einer höheren Ausgabe, als ich es mir wünsche. Daher hoffe ich , nur die Anmeldezeit und das Anmeldedatum zu verwenden for skipund tokenszu erhalten.

Als Beispiel

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

Mit forkann ich dies etwas verkürzen, aber es nimmt den Abstand zwischen Datum und Uhrzeit als Begrenzer und gibt mir daher nur das Datum:

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

Beachten Sie, dass die Ausgabe die "1:45 PM" fehlt. Es ist zu beachten, dass ich nicht mehrere Token angeben kann, da es nur 6 Header gibt, sodass ich kein 7. Token aus der zweiten Zeile erhalten kann. Wie kann ich dies ändern, um sowohl die Uhrzeit als auch das Datum zu erfassen?

* Mach dir keine Sorgen um die Berechnung des Datumsunterschieds, da ich das in VBScript erledigen werde, sobald ich es richtig sammeln kann.

Danke im Voraus, Beems

Beems
quelle

Antworten:

5

Erstens können Sie das 7. Token aus der zweiten Zeile erhalten:
for /f "skip=1 tokens=7" %a in ('quser') do @echo %aErzeugt, 1:45
aber Sie können auch a verwenden *, um alles bis zum Ende der Zeile zu bringen:
for /f "skip=1 tokens=5*" %a in ('quser') do @echo %bErzeugt: 03/11/2015 1:45 PM
Was ich für das halte, wonach Sie suchen.

Von help for:

Wenn das letzte Zeichen in der Zeichenfolge tokens = ein Stern ist, wird eine zusätzliche Variable zugewiesen, die den verbleibenden Text in der Zeile nach dem letzten analysierten Token erhält.

wmz
quelle
Danke, ich habe versucht, das Token mit einem Sternchen pro gefundenem Link zu verwenden, aber es sieht so aus, als ob mein großes Problem darin bestand, dass ich es @echo %astattdessen getan habe @echo %b. Kannst du mir diesen Unterschied erklären? Vielen Dank! Beems.
Beems
2
@Beems forVariablen sind implizit durch cmd erstellt, ausgehend von zunächst angeben, so dass in diesem Fall %a5 bis Token bezeichnet (die letzte Token vor , was Sie interessiert) und %bzu Rest der Zeile (abzüglich alle führenden Leerzeichen)
wmz