現在、必要な作業を実際に行うvbscriptを呼び出すバッチファイルがあります(バッチファイルの経験がないため)。注意してください、私はこのコードをインターネットから入手しました。
VB スクリプトで実現したいこと 基本的に、パスを指定すると、コードは特定のファイル (CSV または XML) が存在するかどうかをチェックします。これらのファイルが存在する場合は、zip ファイルに配置されます。
VB スクリプトで何が起こっているか現在、vbscript は指定されたパス内のすべてのファイルを取得し、そのすべてが 1 つのファイルに圧縮されます。たとえば、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