我有这个命令给我计算机的主机名和本地管理员组的成员。
echo %computername% > \\folder\%computername%.txt
net localgroup Administrators | findstr /V Alias | findstr /V Members | findstr /V Comment | findstr /V The | findstr /v "^$" | more +1 >> \\folder\%computername%.txt
现在的结果是:
电脑1
管理员
域名\域管理员
用户
我希望它在一行中: Computer1、管理员、域名\域管理员、用户
我似乎无法到达那里,我们将不胜感激。 谢谢
我试过 |特 ' ', ' 'tr' 未被识别为内部或外部命令,
我也试过这个thred dir /b 命令输出一行加DELIMITER 批处理文件编程
这是你所期望的。
@echo off
setlocal enabledelayedexpansion
for /F "delims=" %%i in ('net localgroup Administrators ^| findstr /V "^-" ^| findstr /V Alias ^| findstr /V Members ^| findstr /V Comment ^| findstr /V The ^| findstr /v "^$"') do (
if not defined output (
set "output=%%i"
) else (
set "output=, !output!, %%i"
)
)
echo %computername%!output! > %computername%.txt
setlocal enabledelayedexpansion
启用延迟变量扩展,这允许在 FOR 循环内扩展变量。
它在文件中提供以下内容
ComputerName, Administrator, Username
您可以更简单地使用批处理文件中的 PowerShell 来完成此操作:
powershell.exe -NoP "$Env:Computername + ',' + ($(GCim Win32_Group -F \"SID='S-1-5-32-544'\" -P Name | GCAI -Resu Win32_UserAccount).Name -Join ',')"
我将让您根据需要决定将其输出到文件的最佳方式。