我有一个批处理脚本,它会将命令写入.vbs文件并在最后执行它。 VBScript的任务是压缩文件并删除原始文件。以下代码:如何在VBScript中动态设置延迟
FOR %%c in (%1%filename*.*) DO (
REM zip file which is not of current date
ECHO "%%c"|FINDSTR "%CurrentDate%" >nul
IF ERRORLEVEL 1 (
echo Option Explicit >> zipIt.vbs
echo Dim FileToZip, Result >> zipIt.vbs
echo Dim oShell >> zipIt.vbs
echo Dim file >> zipIt.vbs
echo Dim oFileSys >> zipIt.vbs
echo Dim winShell >> zipIt.vbs
echo FileToZip = "%%c" >> zipIt.vbs
echo Result = "%%c.zip" >> zipIt.vbs
echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs
echo Set oFileSys = CreateObject("Scripting.FileSystemObject"^) >> zipIt.vbs
echo Set file = oFileSys.CreateTextFile(Result, True^) >> zipIt.vbs
echo file.Write "PK" ^& Chr(5^) ^& Chr(6^) ^& String(18, 0^) >> zipIt.vbs
echo file.Close >> zipIt.vbs
echo Set file = nothing >> zipIt.vbs
echo set winShell = createObject("shell.application"^) >> zipIt.vbs
Timeout /T 10
echo winShell.namespace(Result^).CopyHere FileToZip >> zipIt.vbs
Timeout /T 10
echo wScript.Sleep(30000^) >> zipIt.vbs
REM Delete the file
echo oFileSys.DeleteFile FileToZip >> zipIt.vbs
CScript zipIt.vbs
要压缩的文件大小不同。 因此,如果文件尺寸较小,等待30秒将会很不错。
echo winShell.namespace(Result^).CopyHere FileToZip >> zipIt.vbs
Timeout /T 10
echo wScript.Sleep(30000^) >> zipIt.vbs
REM Delete the file
echo oFileSys.DeleteFile FileToZip >> zipIt.vbs
需要睡眠时间为CopyHere
方法将文件复制到创建的空zip文件。
例如,如果需要30秒来压缩500 MB大小的文件,那么当文件大小为100 MB时,我不希望脚本等待30秒。
我们可以让脚本等待多少时间来压缩文件吗? VBScript中有任何命令或函数吗?
感谢您的帮助。
你是否总是在同一台计算机上执行此操作,并且所压缩文件的内容基本相同?如果是这样,你可以做一些性能比较压缩100,200,300,400等电子文件,并相应地设置睡眠。 – 2013-05-07 13:41:54
总是在同一台计算机上进行。模式和内容将会类似。可以有多个不同大小的文件。 – Shrik 2013-05-08 05:42:44
您是将多个文件添加到一个zip文件中,还是创建一个带有一个文件的zip文件? – 2013-05-08 11:28:48