我目前正在开发一个小批量脚本来运行dumpsec
并提取我需要的两行信息并丢弃所有其他信息。但是,我无法弄清楚我哪里出错了。在第一个FOR
嵌套在第一个IF
中,我将收到语法错误
此时未预料到
我已经添加并完成了我在FOR
手册页上找到的所有选项,并在本网站上经历了几十个问题,因为这是我的“我这次搞砸了什么”。我唯一想到的是IF
循环之前的FOR
语句导致问题?
@echo off
setlocal EnableDelayedExpansion
CD "C:\Program Files (x86)\SystemTools\"
DUMPSEC /rpt=userscol /outfile=c:\report /saveas=csv /noheader
SET /A maxlines=23
SET /A linecount=1
SET /A size=1
SET /A number=1
SET /A counter=10
:While
IF %size% LEQ 0 (
FOR /F %%i IN (C:\report) DO (
PAUSE
IF !linecount! GEQ %maxlines% GOTO ExitLoop
ECHO %%i>>C:\PulledUser.txt
SET /A linecount+=1
)
:ExitLoop
FOR /F "skip=23 delims=*" IN (C:\report) DO (
ECHO %%a>>c:\Holder.txt
)
XCOPY C:\Holder.txt C:\report /Y
DEL C:\Holder.txt /F /Q
FOR /F %%i IN (C:\report) DO (
SET size=%%~zi
)
SET /P user=<C:\PulledUser.txt
SET /A uname%number%=%user%
SET /A number=%number%+1
SET /A linecount=0
XCOPY C:\PulledUser.txt C:\%user%.txt
DEL C:\PulledUser.txt /F /Q
GOTO While
)
SET /A number=1
IF %counter% LEQ 10(
IF EXIST C:\%uname%%number%.txt (
SET /A number=%number%+1
SET /A counter=%counter%-1
)
)
IF %number% NEQ 0 (
FIND /N /I "%uname%%number%" C:\%uname%%number%.txt && FIND /N /I "pswdrequired" C:\%uname%%number%.txt >> C:\reports.txt
DEL C:\%uname%%number%.txt
SET /A number=%number%-1
)
TYPE C:\reports.txt
PAUSE