我有一个批处理脚本,它将命令写入 .vbs 文件并在最后执行它。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 文件的方法需要睡眠时间。
例如,如果压缩一个大小为 500 MB 的文件需要 30 秒,那么当文件大小为 100 MB 时,我不希望脚本等待 30 秒。
我们可以让脚本等待压缩文件所需的时间吗?VBScript中是否有任何命令或函数?
感谢你的帮助。