我正在为一个微不足道的问题寻找解决方案,我无法解决。请帮帮我。 我的计划是阅读2个文件。其中一个是文件夹结构,另一个是用户列表。 如果在用户列表中找不到文件夹字,则(例如,配置文件)文件夹将被删除。 我还在测试所以请不要在我的代码中引用丢失的删除。 这就是我所拥有的:
@echo off
chcp 1252 >nul
setlocal ENABLEDELAYEDEXPANSION
cls
echo --- working ---
for /f "delims=," %%x in (Profile.txt) do (
set counter = 0
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 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
我的问题是,计数器保持在1 ......
任何帮助都是完美的。 最好, 安德烈亚斯
答案 0 :(得分:1)
首先,在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