如何让命令行输出与分隔符逗号“,”成一行

问题描述 投票:0回答:2

我有这个命令给我计算机的主机名和本地管理员组的成员。

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 批处理文件编程

batch-file cmd
2个回答
0
投票

这是你所期望的。

@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

0
投票

您可以更简单地使用批处理文件中的 PowerShell 来完成此操作:

powershell.exe -NoP "$Env:Computername + ',' + ($(GCim Win32_Group -F \"SID='S-1-5-32-544'\" -P Name | GCAI -Resu Win32_UserAccount).Name -Join ',')"

我将让您根据需要决定将其输出到文件的最佳方式。

© www.soinside.com 2019 - 2024. All rights reserved.