Función CopyHere de VBScript estancada

Función CopyHere de VBScript estancada

Tengo un script para extraer el contenido de una carpeta .zip que no funciona (código al final de la publicación, como referencia). Creo una carpeta de destino si no existe, luego uso CopyHere para mover el contenido a la carpeta de destino. El script se ejecuta hasta el punto en el que crea una carpeta y luego parece detenerse durante la función CopyHere (nunca se mueve nada del archivo zip). Tenga en cuenta que el proceso de Windows Based Script Host se está ejecutando indefinidamente en este punto y tengo que finalizarlo manualmente.

Parece ser algo específico de mi máquina, ya que el script se ejecuta en una máquina virtual que tengo, así como en las máquinas de otros compañeros de trabajo (todas x64 con Windows 10 Professional).

Tengo todos los privilegios en la ubicación a la que intento realizar la extracción, por lo que no creo que sea un problema de permisos. La única diferencia que se me ocurre entre las máquinas es que instalé la función Ubuntu en Windows para jugar. ¿Quizás eso esté causando un problema?

¿Qué otros pasos puedo tomar para descubrir por qué el proceso se está estancando?

¡Gracias!

-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

Respuesta1

CopyHereestá usando la 256opción, que esDisplay a progress dialog box but do not show the file names.
fuente

¿Es posible que recibas un mensaje que no ves? ¿Estás ejecutando el script con wscript.exeo cscript.exe? ¿Lo estás ejecutando de forma interactiva?

¿Puedes probar con la opción 4para no mostrar un cuadro de diálogo de progreso? También puedes probar 16+256cuál agregaríaRespond with "Yes to All" for any dialog box that is displayed.

También ejecuté el script y funciona bien, pero cuando lo volví a ejecutar me solicitaron que sobrescribiera los archivos existentes.

información relacionada