Vbscript 脚本在Windows7中工作,但在XP中不工作

Vbscript 脚本在Windows7中工作,但在XP中不工作,vbscript,windows-xp,Vbscript,Windows Xp,下面的脚本用于将zip解压缩到其他文件夹并覆盖现有文件。这个脚本在Windows7机器上运行得很好,但当我在XP机器上使用它时,它仍然会询问我是否要覆盖它。我不需要与这个脚本进行人工交互。任何帮助都将不胜感激。多谢各位 strZipFile = "Location.zip" 'name of zip file outFolder = "Location output folder" 'destination folder of unzipped files Set objShell =

下面的脚本用于将zip解压缩到其他文件夹并覆盖现有文件。这个脚本在Windows7机器上运行得很好,但当我在XP机器上使用它时,它仍然会询问我是否要覆盖它。我不需要与这个脚本进行人工交互。任何帮助都将不胜感激。多谢各位

strZipFile = "Location.zip"    'name of zip file
outFolder = "Location output folder" 'destination folder of unzipped files

Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace(strZipFile).Items
Set objTarget = objShell.NameSpace(outFolder)
intOptions = 4 + 16 + 1024
objTarget.CopyHere objSource, intOptions
报告说:

注意在某些情况下,例如压缩(.zip)文件,一些选项标志可能会被设计忽略

WinXP上似乎就是这种情况,因此当您想要强制替换现有文件时,必须使用不同的方法。例如,您可以将文件解压缩到临时文件夹,然后将其复制到实际目标:

Set fso = CreateObject("Scripting.FileSystemObject")

'create temporary folder with random name
Randomize
tempFolder = fso.BuildPath(fso.GetSpecialFolder(2), Fix(Rnd * 100000))
fso.CreateFolder tempFolder

strZipFile = "Location.zip"    'name of zip file
outFolder = "Location output folder" 'destination folder of unzipped files

Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace(strZipFile).Items
Set objTarget = objShell.NameSpace(tempFolder)
objTarget.CopyHere objSource

fso.CopyFolder tempFolder, outFolder, True
fso.DeleteFolder tempFolder, True   'delete temporary folder
报告说:

注意在某些情况下,例如压缩(.zip)文件,一些选项标志可能会被设计忽略

WinXP上似乎就是这种情况,因此当您想要强制替换现有文件时,必须使用不同的方法。例如,您可以将文件解压缩到临时文件夹,然后将其复制到实际目标:

Set fso = CreateObject("Scripting.FileSystemObject")

'create temporary folder with random name
Randomize
tempFolder = fso.BuildPath(fso.GetSpecialFolder(2), Fix(Rnd * 100000))
fso.CreateFolder tempFolder

strZipFile = "Location.zip"    'name of zip file
outFolder = "Location output folder" 'destination folder of unzipped files

Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace(strZipFile).Items
Set objTarget = objShell.NameSpace(tempFolder)
objTarget.CopyHere objSource

fso.CopyFolder tempFolder, outFolder, True
fso.DeleteFolder tempFolder, True   'delete temporary folder