簡體   English   中英

批處理僅在特定時刻跳過定界符

[英]Batch to skip delimiter only to a certain moment

我正在嘗試使用命令行通過注冊表獲取我當前的用戶名。 但是我的用戶名在一個空格之間有兩個詞。 例如:“貓狗”。 好吧,如果我使用空格作為分隔符,它只會打印“Cat”,如果我輸入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

您有什么理由不能使用 whoami 命令嗎? 例如:

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

Windows 環境中有一個系統變量%username%

echo %username%

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM