【发布时间】:2016-05-17 17:10:04
【问题描述】:
我正在编写一个批处理脚本,它将使用 WMIC 命令获取 Windows 机器上所有组的列表,使用 net localgroup <groupname> 获取组信息,然后将信息写入输出文件。这是我所拥有的:
for /f "skip=1" %%a in ('"wmic group get name"') do net localgroup %%a >> "%OUTPUTFILEPATH%" 2> nul && echo. >> "%OUTPUTFILEPATH%" && echo ^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^=^= >> "%OUTPUTFILEPATH%" && echo. >> "%OUTPUTFILEPATH%"
我遇到的问题似乎是在 do net localgroup %%a 中获取 %%a 变量的引号,因为它可以很好地输出像管理员这样的组的信息,但是当它到达像远程桌面用户这样的组名时,它会失败返回组的信息。
换句话说,这似乎是在 FOR 循环中发生的事情:
net localgroup Administrators
net localgroup Remote Desktop Administrators
第一次操作成功。第二个不是。显然,需要在 Remote Desktop Administrators 周围加上引号才能将其视为单个参数,但我不太清楚如何为我的 %%a FOR 循环变量实现这一点。
我尝试在"%%a" 和'%%a' 周围加上引号。这没有帮助。
任何意见将不胜感激。
【问题讨论】:
标签: windows batch-file command-line cmd scripting