2012-06-06 5 views
0

저는 현재 실제로 필요한 작업을 수행하는 vbscript를 호출하는 배치 파일을 가지고 있습니다. 배치 파일을 만드는 데 아무런 경험이 없습니다. 인터넷에이 코드가 있습니다.경로의 파일이 VB 스크립트의 특정 유형인지 확인하는 방법은 무엇입니까?

내가 기본적으로 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

이름을 확인하십시오.

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 
+0

나는 코드를 시도했지만 아무 일도 발생하지 않았습니다. 그냥 방금 전에 사용했던 코드를 게시하겠습니다. – oopsiee

+0

루프에 수면을 추가해야 할 것 같네요. – Fionnuala

+0

정확히 어디입니까? ** 잠은 ** 무엇을합니까? – oopsiee

관련 문제