Windows wmic用户帐户SID空格/空行

Windows wmic用户帐户SID空格/空行,windows,batch-file,cmd,wmic,Windows,Batch File,Cmd,Wmic,我要把这个给SID useraccount wmic useraccount where name='%username%' get sid | findstr /b /C:"S-1" > file.txt 或 两种情况(file.txt)都包含空格/空行。我试着用手把它搬走 findstr /r /v "^$" 但这是不可能的。如何删除所有空格/空行以仅获取SID号此批处理文件可以实现以下目的: @echo关闭 对于/f“delims=”(“”wmic路径win32_useracco

我要把这个给SID useraccount

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

两种情况(file.txt)都包含空格/空行。我试着用手把它搬走

findstr /r /v "^$"

但这是不可能的。如何删除所有空格/空行以仅获取SID号此批处理文件可以实现以下目的:

@echo关闭
对于/f“delims=”(“”wmic路径win32_useraccount中的%%a,其中名称=“%UserName%”获取sid“)执行以下操作(
如果不是“%%a”==“SID”(
设置myvar=%%a
转到:循环结束
)   
)
:循环结束
回显SID=%myvar%
回显%myvar%>SID\u%username%.txt
暂停>nul
启动“”SID\%username%.txt
对于
whoami/user/FO CSV/NH
的第二种方法,您可以查看以下内容:

@echo off
setlocal enableextensions disabledelayedexpansion
对于/f“跳过=2个令牌=2个delims=,”%%a in('
wmic路径win32_用户帐户
其中name^=“%username%”
获取sid^,状态/格式:csv
""做"(

>“file.txt”“file.txt”以下是我的做法,WMIC:

对于(%a)do@(>file.txt echo(%b)中的%b,在(''wmic useraccount,其中name='%username%'get sid')中为/f“跳过=1”%a
还有WhoAmI

for/f令牌^=3^delims^=^“%a in('whoami/user/FO CSV/NH')do@(>file.txt echo(%a)

两者都在命令行中匹配问题(忽略批处理文件标记).

Thank适用于whoami。wmic会生成一个错误,因为csv格式很棒,但循环永远不会结束抱歉。这不起作用。我建议您在发布之前先尝试验证命令是否有效谢谢您指出有一个输入错误,如果您告诉我两行代码中的哪一行包含它,这会有所帮助。不过,我无法解释st我提供的大部分代码,因为我很少能访问Windows PC。质量不好的代码。您应该在发布之前对其进行测试
findstr /r /v "^$"