我知道这里有其他主题有相同的目标,但不要认为有一个批处理文件格式,所以这里有:
我在批处理中完成了一个简单的reg查询,以查找包含用户配置文件的注册表项。
set /p username= please enter the user name ?
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /f "C:\users\%username%" /d /s /e
这找到了我正在寻找的确切键
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \ S-1-5-21-1908996837-4138030977-3423296585-49875
然后我想要删除该密钥及其中的所有密钥,但是reg query命令的输出实际上给出了3个不同的结果,这使我很难在for循环中使用。
这是它实际输出到文本文件的内容
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \ S-1-5-21-1908996837-4138030977-3423296585-49875
ProfileImagePath REG_EXPAND_SZ C:\ Users \ Mr Smith
搜索结束:找到1个匹配。
所以我的下一行是一个for循环,很明显,基于上面命令的输出,它并没有完全做我想要的
for /F %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /f "C:\users\%username%" /d /s /e') do reg delete %%a /f
所以最终目标是执行此
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1908996837-4138030977-3423296585-49875" /va /f
但显然不知道并输入完整的密钥名称
由于
答案 0 :(得分:0)
Net User
命令行工具可以帮助系统管理员添加,删除或修改用户帐户......
Net User /?
输出太简洁了,所以learn more
答案 1 :(得分:0)
很抱歉碰到一个旧帖子,但我有同样的问题。这是你的答案:
set /p targetUser=Please enter the user name:
for /F "tokens=*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /f "C:\users\%targetUser%" /d /s /e ^| FIND /I "HKEY" ') do set "userRegKey=%%a"
reg delete "%userRegKey%" /va /f