开发者

Windows command-line disk cataloging - save to csv?

I'm working on a Windows batch script that creates a directory/file listing of a complete hard disk for archival/cataloging purposes, using only command line-tools (and open-source/free tools). For each of the entries in the listing I wanted to list the filename, directory where it resides in, the filesize, date a,nd time of the file, and the md5 sum. I have been able to create somewhat a working starting point开发者_如何学编程, but I'm hitting a wall since I'm not sure if it is even possible using the command-line tools in Windows. The command "dir /s /a:-d /o:-d /t:c" gives me a nice overview, but I would like this overview displayed (or saved to) a comma-delimited format. So my questions are:

  • Can I create a csv file with all the fields I mentioned above, with the standard command-line tools (and a m5 freeware tool for the md5 sums)
  • Do you know of a better way, or is there a dead simple disk cataloging command-line tool I missed?

Thanks in advance for any tips!


You can use dir /s /a:-d /o:-d /t:c > slam.txt

Then the content of this slam.txt, can be processed by WScript in windows, making a CSV file ...

If you need a WScript ex, I can provide one ?


I know this not an CSV example - but it should be complex enough for pattern inspiration :)

and remember this fil is saved as .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);    
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜