Variables 递增变量不起作用 @echo关闭 对于%%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),请执行以下操作( 如果存在%%P:\nul( cls 设置/a计数=%count%+1 dir/s/b%%P:\\查找/c“\”>NUMfiles.max 设置/p“计数器%count%”=NUMfiles.max 设置/p“计数器%count%%%p”=

Variables 递增变量不起作用 @echo关闭 对于%%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),请执行以下操作( 如果存在%%P:\nul( cls 设置/a计数=%count%+1 dir/s/b%%P:\\查找/c“\”>NUMfiles.max 设置/p“计数器%count%”=NUMfiles.max 设置/p“计数器%count%%%p”=,variables,batch-file,increment,Variables,Batch File,Increment,您缺少了良好的旧SETLOCAL EnableDelayedExpansion。当使用在FOR循环内部修改的变量时,您必须始终在脚本开头添加SETLOCAL EnableDelayedExpansion。此外,您必须使用!var!而不是%var%来处理循环修改的变量。应该是这样。它给了我一个错误“命令的语法不正确”著名的…可能重复的…你能帮我修改我的代码让我完全理解吗,因为我仍然有语法错误…希望没问题…我不需要让它工作。语法错误来自“”在set命令中。非常感谢您!!! @echo off FOR

您缺少了良好的旧
SETLOCAL EnableDelayedExpansion
。当使用在FOR循环内部修改的变量时,您必须始终在脚本开头添加
SETLOCAL EnableDelayedExpansion
。此外,您必须使用
!var!
而不是
%var%来处理循环修改的变量。应该是这样。

它给了我一个错误“命令的语法不正确”著名的…可能重复的…你能帮我修改我的代码让我完全理解吗,因为我仍然有语法错误…希望没问题…我不需要让它工作。语法错误来自“”在set命令中。非常感谢您!!!
@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%