« ZIPファイルの中身を削除するバッチファイル | トップページ | 空のZIPファイルを新規作成するバッチファイル »

2007年4月12日 (木)

ZIPファイルの中身を一覧するバッチファイル

ListZIP.CMD ZIPファイル...

@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" %*
GOTO :EOF
@end
var Usage="Usage: ListZIP.CMD ZIPfiles...";
if(WScript.Arguments.Count()==0){
  WScript.Echo(Usage);
  WScript.Quit();
}
for(var e=new Enumerator(WScript.Arguments);!e.atEnd();e.moveNext()){ 
  ListZip(e.item());
}
WScript.Quit();

function ListZip(ZIPfile){
var COL=8;
var fso=new ActiveXObject("Scripting.FileSystemObject");
if(fso.GetExtensionName(ZIPfile).toUpperCase()!="ZIP"){
  WScript.Echo("Invalid Extension Name -",ZIPfile);
  WScript.Quit();
}
var Shell=new ActiveXObject("Shell.Application");
var Folder=Shell.NameSpace(fso.GetAbsolutePathName(ZIPfile));
var Rows=new Array();
Rows.push(ZIPfile);
var Columns=new Array();
for(var k=0;k<=COL;k++){
  Columns.push(Folder.GetDetailsOf(null,k));
}
Rows.push(Columns.join('\t'));
for(var e=new Enumerator(Folder.Items());!e.atEnd();e.moveNext()){
  var FolderItem=e.item();
  var Columns=new Array();
  for(var k=0;k<=COL;k++){
    if(k==5){
      Columns.push(FolderItem.Size);
    }else{
      Columns.push(Folder.GetDetailsOf(FolderItem,k));
    }
  }
  Rows.push(Columns.join('\t'));
}
WScript.Echo(Rows.join('\n'));
}

« ZIPファイルの中身を削除するバッチファイル | トップページ | 空のZIPファイルを新規作成するバッチファイル »