批次只跳过定界符

发布于 2025-01-21 01:43:02 字数 477 浏览 0 评论 0原文

我正在尝试使用命令行登录到注册表。但是我的用户名在一个空间之间有两个单词。例如:“猫狗”。好吧,如果我将空间用作定界符,它只会打印“猫”,如果我放置tokens = 3,它也会打印在一起,因为这两个单词之间有一个空间。

我正在这样做以在许多计算机中使用,因此我无法确定每个计算机的精确用户名。我如何从令牌编号的第一个单词3中的定界符,直到结束至关重要,它的空间有多少?

@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

I'm trying to get my current username by registry using command line. But my username has two words between a space. Ex.: "Cat Dog". Well, if i use a space as delimiter, it only prints 'Cat', if i put tokens=3 it prints also the same because there's a space between these two words.

I'm doing it to use in many computers, so i can't determine the exactly username of each one. How can i delimiter from the first word of the token number 3 until the end not mattering how much spaces it has ?

@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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

飘逸的'云 2025-01-28 01:43:03

有什么原因您无法使用Whoami命令?例如:

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

Is there any reason you couldn't use the whoami command? For example:

for /f "tokens=*" %%g in ('whoami') do set "user=%%g"
不即不离 2025-01-28 01:43:03

Windows在环境中具有系统变量%用户名%

echo %username%

Windows has a system variable %username% in the environment

echo %username%
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文