windows – wmic useraccount SID空格/空行

前端之家收集整理的这篇文章主要介绍了windows – wmic useraccount SID空格/空行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个 two commands来获得SID useraccount

wmic useraccount where name='%username%' get sid | findstr /b /C:"S-1" > file.txt

要么

for /F "tokens=2 delims=," %f in ('whoami /user /FO CSV /NH') do echo %~f > file.txt

两种情况(file.txt)都包含空格/空行.我尝试删除

findstr /r /v "^$"

但这是不可能的.如何删除所有空格/空行以仅获取SID号

解决方法

@echo off
    setlocal enableextensions disabledelayedexpansion

    for /f "skip=2 tokens=2 delims=," %%a in ('
        wmic  path win32_useraccount 
        where name^="%username%" 
        get   sid^,status /format:csv
    ') do (
        >"file.txt" <nul set /p"=%%a"
    )

这将跳过标题,包括一个额外的字段,因此sid是记录中的第二个字段(以csv格式包含节点字段)所以我们可以避免在wmic命令的输出中返回结束回车(每行以CR结尾) CR LF)并使用set / p命令将输出发送到文件,输入流从nul设备读取.这样,文件输出将不包括echo包含的结束CR LF

在whoami版本中的代码相同

@echo off
    setlocal enableextensions disabledelayedexpansion

    for /f "tokens=2 delims=," %%a in ('
        whoami /user /FO CSV /NH
    ') do (
        >"file.txt" <nul set /p"=%%~a"
    )

猜你在找的Windows相关文章