批处理嵌套在IN的循环失败语法

时间:2014-04-07 18:58:02

标签: batch-file if-statement for-loop nested-loops

我目前正在开发一个小批量脚本来运行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

0 个答案:

没有答案