Ich hab da für mein letztes Projekt ein Script gemacht, welches ich Dir hier mal (etwas angepasst) reinkopiere. Vielleicht funktioniert es ja in Deinem fall auch. Ist aber etwas gepfuscht und ohne Gewähr.
Es durchsucht den als folders.tools angegebenen Ordner (und Unterordner) nach HTML-Dateien (in den meisten fällen jedenfalls),
sucht dort nach dem inhalt von href="..." und versucht eine passende Datei zu finden.
Das Ergebnis wird hier in C:/temp/outfile.txt geschrieben.
Es kommt etwas auf Deine Dateien an, u.a. ob Du auch die doppelten Anführungsstriche verwendet hast. Kannst das Script aber ja anpassen, oder sag bescheid, wenn Du Hilfe brauchst.
[code]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 ]
//--