如何检查路径中的文件是否属于特定类型(在VB脚本中)?

时间:2012-06-06 05:36:14

标签: vbscript

我目前有一个批处理文件,它调用一个实际完成我需要的工作的vbscript(因为我没有做批处理文件的经验)。请注意,我刚从互联网上获取此代码。

我希望在VB脚本中发生什么 基本上,我将提供一个路径,代码将检查是否存在特定文件(CSV或XML)。如果存在这些文件,它们将被放在一个zip文件中。

VB脚本中发生了什么目前,vbscript将获取所提供路径中的所有文件,并将所有文件压缩到一个文件中。我想更改此代码,以便它只会压缩CSV文件。


批代码

CScript czip.vbs "C:\Users\donatoma\Documents\Folder1\" "C:\Users\donatoma\Documents\Folder2\CSV files.zip"

VB脚本

'Get command-line arguments.
Set objArgs = WScript.Arguments
InputFolder = objArgs(0)
ZipFile = objArgs(1)

'Create empty ZIP file.
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)

Set objShell = CreateObject("Shell.Application")

Set source = objShell.NameSpace(InputFolder).Items <-- GET CSV FILES, ADD TO AN ARRAY

objShell.NameSpace(ZipFile).CopyHere(source)

'Required!
wScript.Sleep 2000

更新代码

Set objArgs = WScript.Arguments
InputFolder = objArgs(0)
ZipFile = objArgs(1)

'Create empty ZIP file.
CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)

Set objShell = CreateObject("Shell.Application")

Set source = objShell.NameSpace(InputFolder).Items

For i = 0 to source.Count - 1
    If InStr(".csv", Right(source.item(i).Name, 4)) > 0 Then
        objshell.Namespace(ZipFile).CopyHere (source.item(i))
    End If
Next

1 个答案:

答案 0 :(得分:1)

检查姓名。

CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)

Set objshell = CreateObject("Shell.Application")

Set Source = objshell.Namespace(InputFolder).Items 

For i = 0 To Source.Count - 1
    If InStr(".csv,.xml", Right(Source.item(i).Name, 4)) > 0 Then
        objshell.Namespace(ZipFile).CopyHere (Source.item(i))
        WScript.Sleep 200
    End If 
Next