`好的,我被要求在我的问题中更具体。我的文件夹中有不确定数量的文件,例如:
文件夹循环处理每个文件基于InStr“mainx”,“motx”或“resx”。在“motx”类型文件上我希望脚本搜索并查看是否有其他匹配类型文件“motlx”如果有,它将以一种方式处理。如果没有,它将处理第二种方式。文件名将不同但文件名约定将始终有两个下划线“_”后跟我搜索的InStr字符。
以上面的文件为例,我希望编写一个声明,以便在处理NV_A1_motx.dxf时,它会检查文件夹中是否有匹配的NV_B1_motlx.dxf。
问题是我脚本的最后一行。如何为“motx”正确编写该语句,以查看文件夹中是否还存在“motlx”文件?
Thx ...希望能更好地澄清我的意图。
Set App = CreateObject("Illustrator.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder("S:\SOCAL\Section_13\Road DXFs")
Set DXFfile = SourceFolder.Files
Set DXFfolder = FSO.GetFolder(SourceFolder)
Dim FileRef
For Each FileRef In SourceFolder.Files
If Instr(FileRef,"motx") > 0 then
Call Motx(FileRef)
ElseIf Instr(FileRef,"mainx") > 0 then
Call Mainx(FileRef)
ElseIf Instr(FileRef,"resx") > 0 then
Call Resx(FileRef)
Else
Msgbox "File is not being found or some issue with script."
End If
Next
Sub Motx(FileRef)
If ((App.Documents.Count > 0) And (FileExists("S:\SOCAL\Section_13\Road DXFs\SOCAL_B2_motlx.dxf"))) Then
Else
感谢您输入Jose。我在插入代码时遇到错误,所以我所做的只是将代码删除到基础知识,看看你的代码是否会找到匹配的文件。我在文件夹中所做的只有两个文件:
NV_B2_motlx.dvx和 NV_B2_motx.dvx
使用您的脚本进行测试:
Set App = CreateObject("Illustrator.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder("S:\SOCAL\Section_13\Road DXFs")
Set DXFfile = SourceFolder.Files
Set DXFfolder = FSO.GetFolder(SourceFolder)
For Each FileRef In SourceFolder.Files
' default property of `FileRef` object is `Path`
If Instr( FileRef.Name, "motx", vbTextCompare) > 0 Then
I f fso.FileExists( fso.BuildPath( fso.GetParentFolderName( objFile.Path), _
Replace( FileRef.Name, "motx", "motlx", 1, -1, vbTextCompare))) Then
'motlx' exists
MsgBox "We have a match!"
Else
'motlx' does not exist
MsgBox "Sorry, no match"
End If
End If
Next
运行此命令我收到以下错误消息:类型不匹配:'[string:“NV_B2_motlx.dxf”]'代码800A000D第9行字符5。
答案 0 :(得分:1)
也许这段代码存根可以提供帮助:
Dim FileRef
For Each FileRef In SourceFolder.Files
' default proprty of `FileRef` object is `Path`
If Instr( FileRef.Name, "motx", vbTextCompare) > 0 Then
If fso.FileExists( fso.BuildPath( fso.GetParentFolderName( objFile.Path), _
Replace( FileRef.Name, "motx", "motlx", 1, -1, vbTextCompare))) Then
'motlx' exists
Else
'motlx' does not exist
End If
参考:
InStr
,Replace
.Name
,.Path
.BuildPath
,.GetParentFolderName