Obtenir l'heure actuelle de l'utilisateur connecté (CMD Batch)

1

Système d'exploitation: Windows 7, Windows 8, Windows 8.1

À l'aide de la ligne de commande Windows, je peux voir l'heure de connexion de l'utilisateur actuel à l'aide de la qusercommande. Cela se traduit par plus de sortie que je ne le souhaite. J'espère donc pouvoir utiliser for skipet tokensobtenir uniquement l'heure et la date de connexion.

Par exemple

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

En utilisant for, je peux réduire cela, mais cela prend l’espace entre la date et l’heure comme séparateur et ne me donne donc que la date:

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

Notez que la sortie manque le "13h45". Il est à noter que je ne peux pas spécifier plusieurs jetons car il n'y a que 6 en-têtes. Je ne peux donc pas obtenir un 7ème jeton à partir de la deuxième ligne. Comment puis-je modifier cela pour collecter l'heure ainsi que la date?

* Ne vous inquiétez pas pour le calcul de la date de paiement, car je traiterai cela dans VBScript une fois que je pourrai le récupérer correctement.

Merci d'avance, Beems

Beems
la source

Réponses:

5

Premièrement, vous pouvez obtenir le septième jeton à partir de la deuxième ligne:
for /f "skip=1 tokens=7" %a in ('quser') do @echo %aproduit, 1:45
mais vous pouvez également utiliser a *pour tout mettre en fin de ligne:
for /f "skip=1 tokens=5*" %a in ('quser') do @echo %bproduit: 03/11/2015 1:45 PM
ce qui, je pense, est ce que vous recherchez.

De help for:

Si le dernier caractère de tokens = string est un astérisque, une variable supplémentaire est allouée et reçoit le texte restant sur la ligne après le dernier jeton analysé.

wmz
la source
Merci, j'ai essayé d'utiliser le jeton avec un astérisque sur un lien que j'ai trouvé, mais il semble que mon gros problème soit celui que j'ai fait à la @echo %aplace de @echo %b. savez-vous comment m'expliquer cette différence? Merci! Beems.
Beems
2
Les forvariables @Beems sont créées implicitement par cmd, en commençant par la première chose que vous spécifiez. Par conséquent, dans ce cas, %afait référence au jeton 5 (qui est le dernier jeton avant ce qui vous intéresse) et %bau reste de la ligne (moins les espaces de
début