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
CopyHere
está usando la 256
opció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.exe
o cscript.exe
? ¿Lo estás ejecutando de forma interactiva?
¿Puedes probar con la opción 4
para no mostrar un cuadro de diálogo de progreso? También puedes probar 16+256
cuá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.