2016-04-13 19 views
1

metnin ilk satırını kopyalayın. Özellikle çıktı metni CSS/meta veri metni yerine .htm paragrafında bulmanın bir yolu var mı? Teşekkürler.Toplu Şu anda bu var birden .htm dosyalarında

+0

, mevcut ilk metin bir aralık etiketinin içindedir. – FunkyJ

+1

Bunun için tam bir HTML ayrıştırıcısına ihtiyacınız var. Kötü Adamın çözümü: Sisteminizde grep benzeri bir yardımcı programınız var mı? – usr2564301

cevap

0

htmlfile COM nesnesini oluşturmak ve standart JavaScript DOM yöntemlerini kullanmak için bir toplu + JScript karma komut dosyası kullanabilirsiniz. Burada, her düğümün düğüm tipinin bir metin düğümü olup olmadığını yinelemeli olarak kontrol ederek, belg.body ile başlayan DOM'de yürüyecek bir örnek var. Bir alfasayısal karakter içeren ilk bulduğu, kesilmiş metin verilerini ve çıkışları ekler. Toplu çalışma zamanı, bu çıktıyı bir metin dosyasına yönlendirir. Bunu bir .bat uzantısıyla kaydedin ve aradığınıza makul ölçüde yakın olup olmadığını görün. eklemek için

@if (@CodeSection == @Batch) @then 
@echo off & setlocal 

> output.txt (
    for %%I in (*.htm) do cscript /nologo /e:JScript "%~f0" <"%%~fI" 
) 
goto :EOF 

@end // end Batch/begin JScript hybrid code 

var htmlfile = WSH.CreateObject('htmlfile'); 

htmlfile.write('<meta http-equiv="x-ua-compatible" content="IE=9" />'); 
htmlfile.write(WSH.StdIn.ReadAll()); 
htmlfile.documentElement.normalize(); 
String.prototype.trim = htmlfile.parentWindow.String.prototype.trim; 

function walk(node) { 
    do { 
     if (node.nodeType === 3 && /\w/.test(node.data)) { 
      WSH.Echo(node.data.trim()); 
      htmlfile.close(); 
      WSH.Quit(0); 
     } 
     if (node.hasChildNodes()) walk(node.firstChild); 
    } while (node = node.nextSibling); 
} 

walk(htmlfile.documentElement.getElementsByTagName('body')[0]); 
+0

@FunkyJ gerçekten ilk "" etiketiyse, son satırda "gövde" yi "span" ile değiştirmeyi deneyebilirsiniz. Veya kimliğine sahip bir ata elemanı varsa, 'getElementById' kullanmayı deneyin. Tatmak için tuz. – rojo

+0

İstisnalarla çalışır. Sadece bu dosyalarda bulunabilecek pek çok varyasyon olduğunu düşünüyorum çünkü hepsi aynı yapıyı takip etmiyorlar. Çok teşekkürler. – FunkyJ

İlgili konular