List 命令行/脚本列出C:\users中的所有用户配置文件
我正在尝试创建一个非常简单的脚本,它将显示List 命令行/脚本列出C:\users中的所有用户配置文件,list,batch-file,profile,List,Batch File,Profile,我正在尝试创建一个非常简单的脚本,它将显示c:\users中的所有用户配置文件,如: %User1% %User2% 我尝试过使用WMIC循环,但它只是挂起 for /f "tokens=* skip=1" %%a in ('wmic UserAccount get Name') do ( if not "%%a"=="" ( ) ) 任何帮助都将不胜感激。请尝试使用此批处理脚本: @echo关闭 调
c:\users
中的所有用户配置文件,如:
%User1%
%User2%
我尝试过使用WMIC循环,但它只是挂起
for /f "tokens=* skip=1" %%a in ('wmic UserAccount get Name') do (
if not "%%a"=="" (
)
)
任何帮助都将不胜感激。请尝试使用此批处理脚本:
@echo关闭
调用:WMICGET\u ECHO用户帐户名称“名称:”
暂停和退出
::---------------------------------------------------------------------------------------------------------------------------------------
基于这个答案:https://stackoverflow.com/a/63153964/8262102
:WMICGET_ECHO
@对于/f“skip=1 delims=“%%a in”(“'wmic%1 get%2””)do(@for/f“delims=“%%b in”(“%%a”)do echo%~3%%~nb&设置“WMICGET_VALUE=%%~nb”)
后藤:EOF
::---------------------------------------------------------------------------------------------------------------------------------------
与我在中提供的示例不同,下面的示例应该只列出“普通”用户名,这些用户名的本地配置文件位置在C:\Users
中
所谓“正常”,我的意思是它应该忽略诸如“默认”、“来宾”和“管理员”之类的帐户
请注意,正如我在前面提到的评论中所提到的,用户名对于当前系统中的用户是正确的,但不一定是他们的配置文件目录父名称中使用的名称
@Echo Off&SetLocal EnableExtensions
对于(“%SystemRoot%\System32\wbem\WMIC.exe路径中的/F令牌^=2^Delims^=^”%%G
Win32\u用户配置文件,其中“特殊!='TRUE'和类似于'C:\\Users\\%%'的本地路径”
Assoc:List 2^>NUL')对于/F令牌的Do^=4^ Delims^=^“%%H In('
%SystemRoot%\System32\wbem\WMIC.exe用户帐户,其中“SID=”%%G'”关联:列表
/结果文件:SID 2^>NUL')Do Echo%%H
暂停
如果要通过CLI(而不是GUI)运行此批处理文件,可以删除脚本底部的Pause
命令
也可以在命令提示符下直接运行它:
For/F Tokens^=2^ Delims^=^”%G In(“%SystemRoot%\System32\wbem\WMIC.exe Path Win32\u UserProfile其中“Special!='TRUE'和LocalPath类似于'C:\\Users\\\%'”Assoc:List 2^>NUL')Do@For/F Tokens^=4^ Delims^=^”%H In(“%SystemRoot%\System32\wbem\WMIC.exe UserAccount其中“SID='%G'”Assoc:List/ResultRole:SID 2^>NUL')Do@Echo%H
用户配置文件并不总是在C:\Users
中,因此获取这些配置文件的最简单方法是For/D%%G in(“C:\Users\*”)Do@Echo%%~nxG
。但是,这将返回创建用户帐户时使用的原始名称,不一定是他们现在选择的用户名。请回答您的问题,以明确您想要实现的目标。请注意,这列出了所有用户名,而不是位于C:\Users
中的用户名,还包括一些您称之为“普通”用户的用户名。