For loop 如何在batchscript的For循环中设置变量

For loop 如何在batchscript的For循环中设置变量,for-loop,setlocale,batch-file,For Loop,Setlocale,Batch File,我在为一个小问题寻找解决方案,我无法解决。请帮帮我。 我的计划是读2个文件。其中一个是文件夹结构,另一个是用户列表。 如果在用户列表中找不到文件夹单词,则会删除(例如,配置文件)文件夹。 我仍在测试,所以请不要参考我的代码中缺少的删除。 以下是我得到的: 我这里的问题是计数器停留在1 任何帮助都是完美的。 最好的, Andreas首先,在for循环外部初始化计数器变量。 第二,在每次迭代中将计数器设置为1…而不是添加到它。要在dos批处理中执行此操作,必须使用set/a。应该是这样的: @e

我在为一个小问题寻找解决方案,我无法解决。请帮帮我。 我的计划是读2个文件。其中一个是文件夹结构,另一个是用户列表。 如果在用户列表中找不到文件夹单词,则会删除(例如,配置文件)文件夹。 我仍在测试,所以请不要参考我的代码中缺少的删除。 以下是我得到的:



我这里的问题是计数器停留在1

任何帮助都是完美的。 最好的,
Andreas

首先,在for循环外部初始化计数器变量。 第二,在每次迭代中将计数器设置为1…而不是添加到它。要在dos批处理中执行此操作,必须使用set/a。应该是这样的:

@echo off
chcp 1252 >nul

setlocal ENABLEDELAYEDEXPANSION
cls

echo --- working ---

set counter=0
for /f "delims=," %%x in (Profile.txt) do (
    for /f "tokens=1,2 delims=," %%a in (ADMPReport.csv) do (
        IF "%%x"=="%%b" (
            echo %%x & echo %%b
            REM IF User is found counter gets 1
            set /a counter=%counter%+1
            echo %counter%
            pause
        ) 
    )
    echo %counter%
    REM if no user found Counter = 0
    if %counter% == "0" echo %%x 
        REM ping -n 3 127.0.0.1 >NUL
)

echo ---- done ----
ENDLOCAL

ping -n 3 127.0.0.1 >NUL

首先,在for循环外部初始化计数器变量。 第二,在每次迭代中将计数器设置为1…而不是添加到它。要在dos批处理中执行此操作,必须使用set/a。应该是这样的:

@echo off
chcp 1252 >nul

setlocal ENABLEDELAYEDEXPANSION
cls

echo --- working ---

set counter=0
for /f "delims=," %%x in (Profile.txt) do (
    for /f "tokens=1,2 delims=," %%a in (ADMPReport.csv) do (
        IF "%%x"=="%%b" (
            echo %%x & echo %%b
            REM IF User is found counter gets 1
            set /a counter=%counter%+1
            echo %counter%
            pause
        ) 
    )
    echo %counter%
    REM if no user found Counter = 0
    if %counter% == "0" echo %%x 
        REM ping -n 3 127.0.0.1 >NUL
)

echo ---- done ----
ENDLOCAL

ping -n 3 127.0.0.1 >NUL

嗨,不,那还不行。这里要提到的两件事:我不需要couter超过1,永远不会有超过1场比赛。第二,我需要在外循环中将计数器设置为0。我现在尝试设置两次younter,在循环之前初始化,在外循环中再次设置0。这是我的新密码:嗨,不,那没用。这里要提到的两件事:我不需要couter超过1,永远不会有超过1场比赛。第二,我需要在外循环中将计数器设置为0。我现在尝试设置两次younter,在循环之前初始化,在外循环中再次设置0。这是我的新密码: