递增变量不起作用

时间:2016-03-03 11:02:36

标签: variables batch-file increment

@echo off
FOR %%P IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
  IF EXIST %%P:\nul (
cls
SET /a count=%count%+1
dir /s /b %%P:\ |find /c "\" >NUMfiles.max
set /p "counter%count%"=<NUMfiles.max

del %%P:\apple.doc
del %%P:\orange.doc

dir /s /b %%P:\ |find /c "\" >NUMfiles.max
set /p "counter%count%%%P"=<NUMfiles.max
set /a "counter%%P"="counter%count%" - "counter%count%%%P"

  )
)

set /a finalcount="countera + counterb + counterc + counterd + countere +         counterf + counterg + counterh + counteri + counterj + counterk + counterl + counterm + countern + countero + counterp + counterq + counterr + counters + countert + counteru + counterv + counterw + counterx + countery + counterz"
ECHO Total Number of deleted files: %finalcount%

该程序正在扫描每个驱动器以删除apple.doc&amp; orange.doc并在完成从所有驱动器中删除所有文件后,它将为我提供已删除的文件总数的总结果。

请帮忙。

1 个答案:

答案 0 :(得分:0)

你错过了好老SETLOCAL EnableDelayedExpansion。使用在FOR循环中修改的变量时,您始终必须在脚本的开头添加SETLOCAL EnableDelayedExpansion。此外,您必须使用!var!而不是%var%来解决您的循环修改变量。应该是它。