GOOGLE ADS

vendredi 15 avril 2022

Lot pour ignorer le délimiteur uniquement à un certain moment

J'essaie d'obtenir mon nom d'utilisateur actuel par registre en utilisant la ligne de commande. Mais mon nom d'utilisateur a deux mots entre un espace. Ex. : "Chat Chien". Eh bien, si j'utilise un espace comme délimiteur, il n'imprime que 'Cat', si je le mets tokens=3imprime également la même chose car il y a un espace entre ces deux mots.

Je le fais pour l'utiliser sur de nombreux ordinateurs, donc je ne peux pas déterminer le nom d'utilisateur exact de chacun. Comment puis-je délimiter le premier mot du numéro de jeton 3jusqu'à la fin, peu importe le nombre d'espaces dont il dispose?

@echo off
for /f "tokens=3" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\SessionData\1 /v LoggedOnUser') do (
set "user=%%a")
set "user=%user:.\=%"
echo %user%
pause


Solution du problème

Y a-t-il une raison pour laquelle vous ne pouvez pas utiliser la commande whoami ? Par example:

for /f "tokens=*" %%g in ('whoami') do set "user=%%g"

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...