質問: cmdコマンドの出力を取得し、バッチ変数に設定します このコマンドを実行してグループの名前を取得します。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" しかし、私がこれを行うときecho "%rdpgroup%"出力は次のようになります:"remote desktop users " 私はユーザーの終わりにそれらのスペースを望んでいません。次のような出力が必要です:"remote desktop users"
回答: 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