var folders = {};
folders.tools = "C:/temp"; // ziel zum schreiben der log datei
folders.html = "C:/temp"; // die zu durchsuchenden HTML Dateien
saveFile( folders.tools + "/outfile.txt", main() );
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function main()
{
var links = getLinks();
return checkLinks( links ).join("\r\n");
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function checkLinks( list )
{
var fso = new ActiveXObject("Scripting.Filesystemobject");
var out = new Array();
for( var i = 0; i < list.length; i++ )
{
if( !fso.FileExists( list[i] ) )
{
out.push( "missing: " + list[i] );
}
else
{
out.push( "found: " + list[i] );
}
}
return out;
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function getPathOnly( s )
{
s = s.replace(/\\/g,"/");
s = s.substr( 0, s.lastIndexOf("/") );
return s;
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function getLinks()
{
var i = 0;
var instr = "";
var out = new Array();
var mText = new c_markedText( "", "href=\"", "\"" );
var limit = 1000;
var filesList = getFiles( folders.html )[1];
for( i = 0; i < filesList.length; i++ )
{
if( filesList[i].name.split(".")[1] == "html" )
{
instr = loadFile( filesList[i].path );
if( instr == "" ) return out;
mText.setData( instr );
mText.moveFirst();
while( mText.getText() && limit > 0 )
{
out.push( getPathOnly( filesList[i].path ) + "/" + mText.getText() );
mText.moveNext();
limit--;
}
}
}
return out;
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function c_markedText( dt, mA, mB, start )
{
var ptrA = start || -1;
var ptrB = -1;
var data = (dt + "") || "";
var markA = (mA + "") || "";
var markB = (mB + "") || "";
var lenLimit = 2000;
function setPtrB() { if( ptrA > -1 && markB.length > 0 ) ptrB = data.indexOf( markB, ptrA ); else ptrB = -1; }
function jumpToText() { if( ptrA > -1 ) ptrA += markA.length; }
this.debug = function() { return "ptrA:" + ptrA + ", ptrB:" + ptrB + ", markA:" + markA + ", markB:" + markB + ", text:" + this.getText().substr( 0, 10 ); };
this.setData = function( s ) { data = s.toString() || ""; ptrA = -1; setPtrB(); };
this.setLimit = function( n ) { lenLimit = n || lenLimit };
this.moveFirst = function() { if( markA.length > 0 ) { ptrA = data.indexOf( markA, 0 ); jumpToText(); } else { ptrA = -1; } setPtrB(); };
this.moveNext = function() { if( ptrB > -1 ) { ptrA = data.indexOf( markA, ptrB + markB.length ); jumpToText(); setPtrB(); } else ptrA = -1; };
this.moveTo = function( n ) { ptrA = data.indexOf( markA, n ); jumpToText(); setPtrB(); };
this.getText = function() { if( ptrA > -1 && ptrB > -1 && (ptrB - ptrA) < lenLimit ) return data.substring( ptrA, ptrB ); return ""; };
this.getEnd = function() { if( ptrB > -1 ) return ptrB + markB.length; return -1; };
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function loadFile(FileName)
{
var fso,f1;
var FileStr = "";
fso = new ActiveXObject("Scripting.Filesystemobject");
if(fso.FileExists(FileName))
{
f1 = fso.OpenTextFile(FileName, 1);
if(f1.AtEndOfStream) msg("ERROR: Die Datei ist leer"); else FileStr = f1.ReadAll();
f1.close();
}
else { msg("Datei nicht gefunden! --->" + FileName + ""); }
return FileStr;
}
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
function saveFile( FileName, str )
{
var fso, folder, file, foldername;
//------
function getfoldername(s) { var i, m; for (i=0;i<s.length;i++) { if(s.substr(i,1)=="/"||s.substr(i,1)=="\\") m = i; } return s.substr(0,m); }
//------
// attributes:
// 0 Normal Normal file. No attributes are set.
// 1 ReadOnly Read-only file. Attribute is read/write.
// 2 Hidden Hidden file. Attribute is read/write.
// 4 System System file. Attribute is read/write.
// 8 Volume Disk drive volume label. Attribute is read-only.
// 16 Directory Folder or directory. Attribute is read-only.
// 32 Archive File has changed since last backup. Attribute is read/write.
// 1024 Alias Link or shortcut. Attribute is read-only.
// 2048 Compressed Compressed file. Attribute is read-only.
//------
fso = new ActiveXObject("Scripting.Filesystemobject");
foldername = getfoldername(FileName);
if(fso.FolderExists(foldername))
{
folder = fso.Getfolder(foldername);
if(folder.attributes!=16&&folder.attributes!=48)
{
msg("[savefile] kann auf Verzeichnis nicht zugreifen ---><b>" + foldername + "</b> (att:" + folder.attributes + ")");
return false;
}
if(fso.FileExists(FileName))
{
file = fso.GetFile(FileName);
if(file.attributes!=0&&file.attributes!=32)
{
msg("[savefile] kann auf Datei nicht zugreifen ---><b>" + FileName + "</b> (att:" + file.attributes + ")");
return false;
}
}
file = fso.OpenTextFile(FileName, 2, true);
file.write(str);
file.close();
}
else
{
msg("Verzeichnis nicht gefunden! ---><b>" + foldername + "</b>");
}
}
//-----------------------------------------------------------------------------------
//-- returns an array: [ array of folder objects, array of file objects ]
//-- n = 0001 (1): no folders
//-- n = 0010 (2): no files
//-- n = 0100 (4): no subfolders
//-----------------------------------------------------------------------------------
function getFiles( startfolder, n )
{
if( !n ) n = 0;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var folders = new Array();
var files = new Array();
if( !fso.FolderExists( startfolder ) )
{
msg("Folder " + startfolder + " not found!");
return [ [],[] ];
}
getNext( startfolder );
return [ folders, files ];
function getNext( fld )
{
var folderObj = fso.getFolder( fld );
var filesEn, foldersEn;
if( (n & 2) == 0 )
{
filesEn = new Enumerator( folderObj.Files );
for (; !filesEn.atEnd(); filesEn.moveNext()) files.push( filesEn.item() );
}
if( (n & 1) == 0 )
{
folders.push( folderObj );
}
if( (n & 4) == 0 )
{
foldersEn = new Enumerator( folderObj.SubFolders );
for (; !foldersEn.atEnd(); foldersEn.moveNext()) getNext( foldersEn.item().path );
}
}
}
//------------------------------------
//------------------------------------
function msg( s ) { WScript.Echo( s ); }
2 Links mit einem Klick
Harvey17 11.01.2008 - 23 Hits - 3 Antworten
HTML Dateien komplett abspeichern und offline nutzen
Marcos_ 27.04.2008 - 33 Hits - 4 Antworten
Datensatz in Verbindung mit Login (Datenbank)
detommy 21.11.2008 - 30 Hits - 1 Antwort
Alle Links einer Internet-Seite anzeigen?
SeaSkander400 18.02.2009 - 161 Hits - 2 Antworten
Kann man überprüfen, wer alles einen Feed abonniert hat?
Benny_Aua 20.04.2009 - 227 Hits - 3 Antworten