我有一個批處理腳本,它會將命令寫入.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