根据文件名区分文件

时间:2016-05-25 23:29:19

标签: vbscript

我有一个需要循环的文件夹。每个文件的处理方式都不同。第二个“_”后面的文件名部分是要遵循的过程的关键。问题是,名称相似,我找不到区分它们的方法。它们总是出现在Process1。

我尝试过的文件和代码的典型文件夹:

NV_DB62_mainx_.dxf
NV_DB62_mainxsplashroad.dxf
NV_DB62_mainxplashroadONLY.dxf
NV_DB62_mainsplash.dxf
NV_DB63_mainx_dxf
NV_DB63_mainxsplashroad.dxf
NV_DB63_mainxplashroadONLY.dxf
NV_DB63_mainsplash.dxf
Set App = CreateObject("Illustrator.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder("S:\NV\Section_13\Road DXFs")

Dim FileRef
For Each FileRef In SourceFolder.Files
   If Instr(FileRef,"mainx") > 0 then
       Call Process1(FileRef)
   ElseIf Instr(FileRef,"mainxsplashroad") > 0 then
       Call Process2(FileRef)
   ElseIf Instr(FileRef,"mainxsplashroadONLY") > 0 then
       Call Process3(FileRef)
   ElseIf Instr(FileRef,"mainsplash") > 0 then
       Call Process4(FileRef)
   Else
       Msgbox "File is not being found or some issue with script."
   End If
Next

1 个答案:

答案 0 :(得分:0)

正如Noodles在评论中指出的那样,这是一个算法问题。

您需要搜索从最具体到最不具体的条目。也就是说,每个If / ElseIf测试都不应该匹配它下面的任何条件(现在,你的"mainx"第一个测试与它下面的两个测试匹配)。