如果扩展名为.log的文件夹中有文件,我该如何计数,并将计数存储在可以作为数组索引传递的变量中



我需要将文件夹中的第一个和最后一个文件的名称存储在变量中,因此我需要获取文件的名称并将其存储在数组中。然后根据计数获取数组的第一个和最后一个索引,并将这些名称存储到另一个变量中。这些变量需要作为名称传递给目录。

虽然这不是使用数组,但这是一种只获取第一个和最后一个文件名的简单方法。

这将在C:temp中查找所有类型为.log的文件,如果找到一个,它将尝试将其存储在变量%first%中,前提是其中尚未存储一个文件。对于它找到的每个匹配文件,它都会将其名称存储在变量%last%中,覆盖该变量中的前一个值,这意味着当它完成列出所有文件时,您将只剩下%last%中的最后一个文件名。

@echo off
setlocal enabledelayedexpansion
set "folderpath=C:temp"
set "filetype=.txt"
:: Sort order:  N=Name-Alphabetic, E=Extention-Alphabetic, S=Size (smallest to largest), D=Date Time (Old to new)
set "sortOrder=D"

for /f %%a in ('dir /O:%sortOrder% /b "%folderpath%*%filetype%"') do (
if not defined first set "first=%%a"
set /a count+=1
set "last=%%a"
)
echo First File:%first%
echo Last File:%last%
echo Count:!count!
endlocal

如果要列出文件夹中的所有文件,而不是仅列出一种类型,则可以将set "filetype=.log"更改为set "filetype="

这也将只搜索指定的文件夹。要包含所有子目录,请将dir /b更改为dir /s /b

编辑:修改代码以包括排序顺序选项和计数

相关内容

  • 没有找到相关文章

最新更新