我期待實現一個簡單的批處理文件,該文件將重命名當前的本地配置文件文件夾,備份註冊表項然後刪除配置文件列表SID鍵。 因此,允許計算機創建一個不是臨時的新本地配置文件。如何使CMD在SET變量中顯示結果而不是字符串
凡%U%
是帳戶名
set a=wmic useraccount where name="%U%" get sid /value
,所以當我執行以下(其中%a%
是上述命令):
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\%a% /f
它會將其解釋爲:
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\wmic useraccount where name="%U%" get sid /value"
但我想:
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\SID=S-1-5-21-3519583588-1143172139-1479499458-1001"
如果我請%a%
,它顯示
SID = S-1-5-21-3519583588-1143172139-1479499458-1001
,如果我回聲%a%
,它顯示
wmic useraccount where name="%U%" get sid
如果我剛進入%a%
,它顯示
SID = S-1-5-21-3519583588-1143172139-1479499458-1001
只是爲什麼發生這種情況將是巨大的一個解釋。
來自wmic命令的響應將是'SID = ....'所以省略'SID ='並且簡單地'設置%% A'。由於沒有其他輸出,所以'goto:br'不是必需的。 – LotPings
好點。我修改了我的答案。 – abelenky
謝謝@abelenky我肯定會給出一個嘗試:) :) –