2009-05-26 2 views
10

Ich möchte eine ZIP-Datei mit VBScript entpacken, nur es ist immer ein neuer Computer ohne externe Anwendungen darauf. Jetzt weiß ich, dass Windows XP und 2003 eine interne ZIP-Ordner-Option haben, also kann ich es über VBScript verwenden, um die Datei zu extrahieren.Entpacken einer Datei in VBScript mit internen Windows XP-Optionen in

Wie mache ich das?

Ich habe versucht:

Set objShell = CreateObject("Shell.Application") 

Set SrcFldr = objShell.NameSpace(fileName) 
Set DestFldr = objShell.NameSpace(appDir) 
DestFldr.CopyHere(SrcFldr) 

Welche nicht funktioniert hat. Was könnte das Problem sein?

+0

Werfen Sie einen Blick auf den dritten Eintrag auf [Rob van der Woude ist] (http://www.robvanderwoude.com/vbstech_files_zip.php#CopyHereUNZIP) Ort. – bugmagnet

+0

check [this] (http://stackoverflow.com/questions/28043589/) – npocmaka

Antwort

26

Setzen Sie einfach ZipFile = Der Speicherort der ZIP-Datei und ExtractTo = an den Speicherort der ZIP-Datei extrahiert werden soll.

'The location of the zip file. 
ZipFile="C:\Test.Zip" 
'The folder the contents should be extracted to. 
ExtractTo="C:\Test\" 

'If the extraction location does not exist create it. 
Set fso = CreateObject("Scripting.FileSystemObject") 
If NOT fso.FolderExists(ExtractTo) Then 
    fso.CreateFolder(ExtractTo) 
End If 

'Extract the contants of the zip file. 
set objShell = CreateObject("Shell.Application") 
set FilesInZip=objShell.NameSpace(ZipFile).items 
objShell.NameSpace(ExtractTo).CopyHere(FilesInZip) 
Set fso = Nothing 
Set objShell = Nothing 
+2

Wenn man das selbe in JScript schreibt, muss man darauf achten, die Backslashes ("\\") zu umgehen. Dieser gab mir große Kopfschmerzen. –

+0

Fehler als Objekt wird angefordert. "setze FilesInZip = objShell.NameSpace (ZipFile) .items". Kann mir jemand dabei helfen? –