Vbscript 处理文件(如果文件存在且第二个文件存在)
`好的,我被要求在我的问题中更具体一些。我的文件夹中有数量未知的文件,例如:Vbscript 处理文件(如果文件存在且第二个文件存在),vbscript,Vbscript,`好的,我被要求在我的问题中更具体一些。我的文件夹中有数量未知的文件,例如: NV_A1_mainx.dxf NV_A1_resx.dxf NV_B1_mainx.dxf NV_B1_motx.dxf NV_B1_motlx.dxf 文件夹根据InStr“mainx”、“motx”或“resx”循环处理每个文件。在“motx”类型文件上,我希望脚本搜索并查看是否有其他匹配类型文件“motlx”。如果有,它将以一种方式处理。如果没有,它将以另一种方式处理。文件名将不同,但文件名约定始终有两个下划线
问题是脚本的最后一行。如何正确地为“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。此代码存根可能有帮助:
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
参考:
- :
,安装
更换
- :
,.Name
.Path
- :
,.BuildPath
.GetParentFolderName