获取 CMD 命令的输出并将其设置为批处理变量

Ari*_*thi 7 windows batch command-line batch-file

我运行此命令以获取组名称:

set "remotegroup="
     for /f "skip=1delims=" %%a in (
     '"wmic group where sid="S-1-5-32-555" get name"'
     ) do if not defined remotegroup set "remotegroup=%%a"
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时echo "%rdpgroup%",输出是这样的:

"Remote Desktop Users  "
Run Code Online (Sandbox Code Playgroud)

我不想要用户末尾的那些空间。只想要这样的输出:"Remote Desktop Users"

Hac*_*koo 8

WMIC 的输出是 unicode !

<CR>可以通过将值传递到另一个 FOR /F 循环来删除尾随。这也删除了幻影“空白”行(实际上是一个<CR>

@echo off
set "remotegroup="
for /f "skip=1 delims=" %%a in ('"wmic group where sid="S-1-5-32-555" get name"') do (
    for /f "delims=" %%b in ("%%a") do if not defined remotegroup set "remotegroup=%%~nb"
)
echo "%remotegroup%"
pause
Run Code Online (Sandbox Code Playgroud)