如何用VBS筛选JPEG文件并将路径导出到CSV文件
VBS筛选JPEG文件路径写入CSV实现方法
现有问题
当前编写的VBS脚本可提取目标文件夹内所有文件的完整路径并写入CSV,但缺少文件格式筛选逻辑,无法仅输出JPEG格式照片的路径。原有全量提取代码如下:
Dim fso, folder, files, OutputFile Dim strPath ' Create a FileSystemObject Set fso = CreateObject("Scripting.FileSystemObject") ' Define folder we want to list files from strPath = "C:\Users\span\Desktop\PluripostageIssue\SD105-22\PHOTOS" Set folder = fso.GetFolder(strPath) Set files = folder.Files ' Create CSV file to output test data Set OutputFile = fso.CreateTextFile("ScriptOutput.csv", True) ' Loop through each file For each item In files ' Output file properties to a text file OutputFile.WriteLine(item.Path) Next ' Close text file OutputFile.Close
修改方案
在文件遍历循环内增加扩展名判断逻辑即可实现JPEG格式筛选,需要注意统一转换扩展名大小写,避免遗漏.JPG/.jpg/.JPEG/.jpeg等不同大小写写法的JPEG文件。
修改后可直接运行的完整代码:
Dim fso, folder, files, OutputFile Dim strPath ' 创建文件系统对象 Set fso = CreateObject("Scripting.FileSystemObject") ' 定义目标照片文件夹路径 strPath = "C:\Users\span\Desktop\PluripostageIssue\SD105-22\PHOTOS" Set folder = fso.GetFolder(strPath) Set files = folder.Files ' 创建输出CSV文件 Set OutputFile = fso.CreateTextFile("ScriptOutput.csv", True) ' 遍历文件夹内所有文件 For each item In files ' 获取文件扩展名并统一转为小写做匹配 fileExt = LCase(fso.GetExtensionName(item.Path)) ' 仅筛选jpg、jpeg格式文件写入路径 If fileExt = "jpg" Or fileExt = "jpeg" Then OutputFile.WriteLine(item.Path) End If Next ' 关闭输出文件 OutputFile.Close
核心修改点
- 调用
fso.GetExtensionName()方法获取单个文件的扩展名,配合LCase()方法统一将扩展名转为小写,消除大小写差异带来的筛选误差 - 增加条件判断分支,仅当文件扩展名为
jpg/jpeg时,才将文件完整路径写入CSV文件
内容的提问来源于stack exchange,提问作者VacancyContendor
相关产品推荐
相关产品推荐

