0

我已经搜索并尝试了所有方法来获取具有特定扩展名的文件数,但我什么也没找到,所以我需要一些帮助,我的问题:

我有多个具有不同扩展名的文件,我需要将扩展​​名为 .NDS 的文件数放在一个变量中

例如:(例如,我将放置 2 个扩展名为 .nds 的文件)

@echo off
set number=0
FOR %%f in (%CD%\files\*.nds) DO set /a number=%number%+1
echo Nintendo DS : %number% game(s)
pause

输出:

Nintendo DS : 1

但是为什么,我说找到 %CD%\files 中的每个 .nds 文件,您将 +1 设置为 %number%,并且有 2 个文件:那他为什么给我 1 而不是 2?有人可以给我一个解决方案

4

1 回答 1

1

你基本上陷入了延迟扩张的陷阱。但是该SET /A命令为您提供了一些选项,不必对变量使用延迟扩展。

将 set 命令更改为这些选项之一。

set /a "number=number + 1"

或者

set /a "number+=1"

这在SET命令的帮助文件中进行了解释。

表达式中的任何非数字字符串都被视为环境变量名称,其值在使用之前转换为数字。如果指定了环境变量名称但未在当前环境中定义,则使用零值。这允许您对环境变量值进行算术运算,而无需键入所有这些 % 符号来获取它们的值。

于 2022-02-20T20:30:47.337 回答