1

コマンドラインツール(およびオープンソース/無料ツール)のみを使用して、アーカイブ/カタログ化の目的で完全なハードディスクのディレクトリ/ファイルリストを作成するWindowsバッチスクリプトに取り組んでいます。リスト内の各エントリについて、ファイル名、ファイルが存在するディレクトリ、ファイルサイズ、ファイルの日付と時刻、および md5 合計をリストしたいと思いました。作業の開始点をいくらか作成することができましたが、Windows のコマンドライン ツールを使用してそれが可能かどうかさえわからないため、壁にぶつかっています。コマンド "dir /s /a:-d /o:-d /t:c" で見やすい概要が得られますが、この概要をコンマ区切り形式で表示 (または保存) したいと考えています。だから私の質問は:

  • 標準のコマンドライン ツール (および md5 サム用の m5 フリーウェア ツール) を使用して、上記のすべてのフィールドを含む csv ファイルを作成できますか?
  • もっと良い方法を知っていますか、それとも私が見逃した非常にシンプルなディスクカタログ化コマンドラインツールはありますか?

ヒントをお寄せいただきありがとうございます。

4

2 に答える 2

1

dir /s /a:-d /o:-d /t:c > slam.txt を使用できます

次に、この slam.txt の内容を Windows の WScript で処理して、CSV ファイルを作成します...

WScript ex が必要な場合は、提供できますか?

于 2011-06-06T10:40:25.237 に答える
0

これはCSVの例ではないことは知っていますが、パターンのインスピレーションを得るには十分に複雑なはずです:)

このファイルは.jsとして保存されることを忘れないでください

var what2lookfor = '<rect ';
var forReading = 1, forWriting = 2, forAppending = 8, jx = 0, ix = 0;
var triStateUseDefault =  -2, triStateTrue = -1, triStateFalse = 0;
var thisRecord="", validFileTypes="js,xml,txt,php,xsl,css,htm,html" , akkum = "";
var fileArray = [];

var FSO = new ActiveXObject("Scripting.FileSystemObject");  
var objFiles = FSO.GetFolder("F:\\xps1710\\jscript\\");  
var objFileControl = new Enumerator(objFiles.files);  


for (; !objFileControl.atEnd(); objFileControl.moveNext()) {  
  objFile = FSO.GetFile(objFileControl.item());  

  var ext = objFile.Name.split(".");  
  if (validFileTypes.indexOf(ext[1]) > 1) {  
    fileArray[ix] = "F:\\xps1710\\jscript\\" + objFile.Name;        
    ix++;        
  }  
}  


for (zx = 0 ; zx < ix ; zx++  ) {  

  var file2Traverse = FSO.OpenTextFile(fileArray[zx], forReading, triStateUseDefault );              
  while (!file2Traverse.AtEndOfStream) {  
    thisRecord = file2Traverse.ReadLine();          

    if (thisRecord.indexOf(what2lookfor) > 1 ) {  
      akkum = akkum + fileArray[zx] + '::' + thisRecord + '\n';  
      break;  
    }  
  }

}
WScript.Echo(akkum);    
于 2011-06-14T13:10:10.857 に答える