작동하지 않는 .zip 폴더의 내용을 추출하는 스크립트가 있습니다(참조용 게시물 하단의 코드). 대상 폴더가 없으면 생성한 다음 CopyHere를 사용하여 내용을 대상 폴더로 이동합니다. 스크립트는 폴더를 생성하는 지점까지 실행된 다음 CopyHere 기능 중에 정지된 것처럼 보입니다(zip 파일에서 아무것도 이동되지 않음). 현재 Windows 기반 스크립트 호스트 프로세스는 무기한 실행 중이므로 수동으로 종료해야 합니다.
스크립트가 내가 가지고 있는 가상 머신과 다른 동료의 머신(모두 x64 Windows 10 Professional)에서 실행되기 때문에 내 머신에 특정한 문제가 있는 것 같습니다.
추출하려는 위치에 대한 모든 권한이 있으므로 권한 문제가 아니라고 생각합니다. 내가 생각할 수 있는 컴퓨터 간의 유일한 차이점은 놀기 위해 Ubuntu-in-Windows 기능을 설치했다는 것입니다. 그게 문제를 일으키는 게 아닐까요?
프로세스가 지연되는 이유를 알아내기 위해 어떤 다른 조치를 취할 수 있습니까?
감사해요!
-션
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
답변1
CopyHere
옵션 을 사용하고 있습니다 256
.Display a progress dialog box but do not show the file names.
원천
표시되지 않는 메시지가 표시될 가능성이 있나요? wscript.exe
또는 를 사용하여 스크립트를 실행하고 있습니까 cscript.exe
? 대화형으로 실행하고 있나요?
4
진행률 대화 상자를 표시하지 않도록 옵션을 사용해 볼 수 있습니까 ? 16+256
다음을 추가해 볼 수도 있습니다.Respond with "Yes to All" for any dialog box that is displayed.
또한 스크립트를 실행했는데 제대로 작동했지만 다시 실행했을 때 기존 파일을 덮어쓰라는 메시지가 표시되었습니다.