2014-12-30 53 views
1

嗨我建立了我自己的批量殺毒軟件,並希望添加一個zip炸彈或解壓縮炸彈檢測功能,我將如何確定批量或vbscript中的zip的最終未壓縮大小? 在此先感謝如何在批處理或vbscript中確定zip的最終未壓縮大小?

+0

您可以查詢命令行歸檔程序以獲取總文件大小。你使用哪個存檔器? – foxidrive

+0

我沒有爲我的程序使用任何特定的歸檔程序。可以從命令行訪問嵌入在Windows資源管理器中的那個? – Towtow10

回答

1

保存爲.bat

@if (@x)==(@y) @end /***** jscript comment ****** 
    @echo off 

    cscript //E:JScript //nologo "%~f0" %* 
    exit /b 0 

@if (@x)==(@y) @end ****** end comment *********/ 


var wshShell = WScript.CreateObject("WScript.Shell"); 
var args=WScript.Arguments; 
var zipFile=args.Item(0); 

    getSize = function(path){ 
     var ShellObj=new ActiveXObject("Shell.Application"); 
     var targetObject = new Object; 
     var targetObject=ShellObj.NameSpace(path); 

     if (typeof size === 'undefined'){ 
      var size=0; 
     } 
     if (targetObject != null){ 

      for (var i=0; i<targetObject.Items().Count;i++){ 
       //WScript.Echo("Checking: "+targetObject.Items().Item(i)); 
       if(!targetObject.Items().Item(i).IsFolder){ 
        size=size+targetObject.Items().Item(i).Size; 
       } else if (targetObject.Items().Item(i).Count!=0){ 
        size=size+getSize(targetObject.Items().Item(i).Path); 
       } 
      } 
     } else { 
      return 0; 
     } 
     return size; 
    } 



WScript.Echo(getSize(zipFile)); 

它只有一個參數 - zip文件並打印其大小以字節爲單位。 (Item.Size屬性獲取未壓縮的大小)

編輯它不適用於相對路徑。應該使用全路徑。 EDITzipjs.bat(導入here)可以被用於該目的:

call zipjs.bat getSize -source C:\\zipFile.zip 

和不再完整路徑是必需的並且是相對的,可以使用。

+0

您的代碼總是返回0. – Towtow10

+0

@ Towtow10 - 嘗試使用完整路徑。顯然,它不適用於相對路徑。 – npocmaka

+0

我已經在使用完整的路徑,但我嘗試了相對的,它的工作表示感謝。 – Towtow10

相關問題