Ich habe ein Skript zum Extrahieren des Inhalts eines ZIP-Ordners, das nicht funktioniert (Code unten im Beitrag, als Referenz). Ich erstelle einen Zielordner, falls er nicht existiert, und verwende dann CopyHere, um den Inhalt in den Zielordner zu verschieben. Das Skript wird bis zu dem Punkt ausgeführt, an dem es einen Ordner erstellt, und scheint dann während der CopyHere-Funktion ins Stocken zu geraten (es wird nie etwas aus der ZIP-Datei verschoben). Beachten Sie, dass der Windows Based Script Host-Prozess an diesem Punkt auf unbestimmte Zeit ausgeführt wird und ich ihn manuell beenden muss.
Es scheint ein spezifisches Problem mit meinem Computer zu sein, da das Skript sowohl in einer virtuellen Maschine von mir als auch auf den Computern anderer Kollegen (alle x64 Windows 10 Professional) ausgeführt wird.
Ich habe volle Berechtigungen für den Speicherort, an den ich extrahieren möchte, daher glaube ich nicht, dass es sich um ein Berechtigungsproblem handelt. Der einzige Unterschied zwischen den Maschinen, der mir einfällt, ist, dass ich die Ubuntu-in-Windows-Funktion zum Ausprobieren installiert habe. Vielleicht verursacht das ein Problem?
Welche weiteren Schritte kann ich unternehmen, um herauszufinden, warum der Prozess ins Stocken gerät?
Danke!
-Sean
Function unzip(sZip)
Dim oFSO, oShell
dim zip, d
Set oFSO = CreateObject("Scripting.FileSystemObject")
sZipFile = oFSO.GetAbsolutePathName(sZip)
sDestPath = oFSO.GetAbsolutePathName(Left(sZip, Len(sZip) - 4))
If Not oFSO.FolderExists(sDestPath) Then
oFSO.CreateFolder(sDestPath)
End If
Set oShell = CreateObject("Shell.Application")
Set zip = oShell.NameSpace(sZipFile)
set d = oShell.NameSpace(sDestPath)
MsgBox "Got here"
d.CopyHere zip.items, 256
Set oFSO = Nothing
Set oShell = Nothing
End Function
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
sPath = oFSO.GetParentFolderName(WScript.ScriptFullName)
sInstPath = sPath & "\dist\installers\"
aInsts = Array("4-AgilentIOLib.zip", "5-NationalInstrumentsLib.zip")
For i = 0 To UBound(aInsts)
MsgBox "Unzipping " & sInstPath & aInsts(i)
unzip(sInstPath & aInsts(i))
MsgBox "Done"
Next
Antwort1
CopyHere
nutzt die 256
Option, dieDisplay a progress dialog box but do not show the file names.
Quelle
Ist es möglich, dass Sie eine Eingabeaufforderung erhalten, die Sie nicht sehen? Führen Sie das Skript mit wscript.exe
oder aus cscript.exe
? Führen Sie es interaktiv aus?
Können Sie mit der Option versuchen 4
, keinen Fortschrittsdialog anzuzeigen? Sie können auch versuchen, 16+256
was hinzufügen würdeRespond with "Yes to All" for any dialog box that is displayed.
Ich habe das Skript auch ausgeführt und es funktioniert einwandfrei, aber als ich es erneut ausführte, wurde ich aufgefordert, vorhandene Dateien zu überschreiben.