VBScript如何优先处理指定图片文件再处理文件夹内其他文件?
VBScript优先处理指定图片文件的实现方法
方法一:单独处理目标文件,再遍历剩余文件
直接先定位并处理你指定的图片,再遍历文件夹内其他文件并跳过已处理的目标文件,不用依赖数组或文件名排序。示例代码:
Dim fso, fld, targetFile, fil Set fso = CreateObject("Scripting.FileSystemObject") Set fld = fso.GetFolder("你的图片文件夹路径") targetFile = "指定图片文件名.jpg" '替换为你的目标文件名 ' 优先处理目标文件 For Each fil In fld.Files If LCase(fil.Name) = LCase(targetFile) Then ' 此处写入处理该图片的逻辑,比如显示操作 WScript.Echo "优先处理:" & fil.Path Exit For End If Next ' 处理剩余所有图片 For Each fil In fld.Files If LCase(fil.Name) <> LCase(targetFile) Then ' 此处写入处理其他图片的逻辑 WScript.Echo "处理剩余:" & fil.Path End If Next
方法二:将目标文件移至数组首位
把所有文件存入数组后,手动调整顺序让目标文件处于索引0的位置,无需修改文件名。示例代码:
Dim fso, fld, filesArr, targetFile, i, j, temp Set fso = CreateObject("Scripting.FileSystemObject") Set fld = fso.GetFolder("你的图片文件夹路径") targetFile = "指定图片文件名.jpg" ' 将文件夹内文件存入数组 ReDim filesArr(fld.Files.Count - 1) i = 0 For Each fil In fld.Files Set filesArr(i) = fil i = i + 1 Next ' 查找目标文件并交换至数组首位 For j = 0 To UBound(filesArr) If LCase(filesArr(j).Name) = LCase(targetFile) Then Set temp = filesArr(0) Set filesArr(0) = filesArr(j) Set filesArr(j) = temp Exit For End If Next ' 按数组顺序处理所有文件 For i = 0 To UBound(filesArr) ' 此处写入处理图片的逻辑 WScript.Echo "处理:" & filesArr(i).Path Next
关于文件名排序的补充
如果想用文件名排序让目标文件自然处于首位,确实可以给目标文件加前缀(比如00_),再对数组按文件名排序。但上面两种方法更灵活,无需修改文件名就能实现需求。
内容的提问来源于stack exchange,提问作者Col
相关产品推荐
相关产品推荐

