加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – wmic useraccount SID空格/空行

发布时间:2020-12-14 05:28:48 所属栏目:Windows 来源:网络整理
导读:我有这个 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)都包含空格
我有这个 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"
    )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读