获取特定文件夹中具有特定扩展名的文件数(批处理)
GET THE NUMBER OF FILES WITH A SPECIFIC EXTENSION IN A SPECIFIC FOLDER (BATCH)
我已经搜索并尝试了所有方法来获取具有特定扩展名的文件的数量,但我没有找到任何东西,所以我需要一些帮助,我的问题:
我有多个具有不同扩展名的文件,我需要将扩展名为 .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 ?
谁能给我一个解决方案
你基本上落入了延迟扩张的陷阱。但是 SET /A
命令为您提供了一些选项,使您不必对变量使用延迟扩展。
将设置命令更改为这些选项之一。
set /a "number=number + 1"
或
set /a "number+=1"
这在 SET
命令的帮助文件中进行了解释。
任意 non-numeric 个字符串
表达式被视为环境变量名称,其值为
在使用它们之前转换为数字。如果一个环境变量名
已指定但未在当前环境中定义,则为一个值
使用零。这允许您对环境进行算术运算
变量值,而不必键入所有这些 % 符号来获取它们
值。
我已经搜索并尝试了所有方法来获取具有特定扩展名的文件的数量,但我没有找到任何东西,所以我需要一些帮助,我的问题:
我有多个具有不同扩展名的文件,我需要将扩展名为 .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 ? 谁能给我一个解决方案
你基本上落入了延迟扩张的陷阱。但是 SET /A
命令为您提供了一些选项,使您不必对变量使用延迟扩展。
将设置命令更改为这些选项之一。
set /a "number=number + 1"
或
set /a "number+=1"
这在 SET
命令的帮助文件中进行了解释。
任意 non-numeric 个字符串 表达式被视为环境变量名称,其值为 在使用它们之前转换为数字。如果一个环境变量名 已指定但未在当前环境中定义,则为一个值 使用零。这允许您对环境进行算术运算 变量值,而不必键入所有这些 % 符号来获取它们 值。