Skip to main content

convertto-html mit Suchfunktion über der Tabelle

Das Kommand convertto-html ist schon recht leistungsfähig. Was mich immer gestört hat, ist das es in der HTML Datei keine Suchfunktion gegeben hat. Bis jetzt.

Hier mein Kommando mit den entsprechenden Parametern:

ConvertTo-Html -PreContent "<div style='background-color:#CfCfCf;padding: 5px;'><input autofocus type='text' size='80' placeholder='Suchbegriff eingeben (RegEx wird unterst&uuml;tzt)' id='myInput' onkeyup='myFunction()' /></div>"  -head "<script>eval(atob('ZnVuY3Rpb24gbXlGdW5jdGlvbigpIHsNCiAgdmFyIGlucHV0LCBmaWx0ZXIsIHRyLCB0ZCwgaSwgZA0KICBkPWRvY3VtZW50Ow0KICBpbnB1dCA9IGQuZ2V0RWxlbWVudEJ5SWQoIm15SW5wdXQiKTsNCiAgZmlsdGVyID0gaW5wdXQudmFsdWUudG9VcHBlckNhc2UoKTsNCiAgdHI9ZC5xdWVyeVNlbGVjdG9yQWxsKCd0cicpIA0KICBmb3IgKGkgPSAxOyBpIDwgdHIubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgcm93Q29udGVudCA9IHRyW2ldLnRleHRDb250ZW50LnJlcGxhY2UoL1tcc10rL2csICcgJyk7DQogICAgcm93Q29udGVudCA9IHJvd0NvbnRlbnQucmVwbGFjZSgvW1xzXSsvZywgJyAnKTsNCiANCiAgICBpZiAocm93Q29udGVudCkgew0KCQlyZWdFeD1uZXcgUmVnRXhwKGZpbHRlciwiIikNCiAgICAgIGlmICggcmVnRXgudGVzdChyb3dDb250ZW50LnRvVXBwZXJDYXNlKCkpICkgew0KDQogICAgICAgIHRyW2ldLnN0eWxlLmRpc3BsYXkgPSAiIjsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRyW2ldLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQogICAgICB9DQogICAgfSAgDQogICAgDQogIH0NCn0'));</script>"
Die JavaScript Funktion ist base64 encodiert, damit sich das in der Konsole leichter eingeben lässt.
function myFunction() {
  var input, filter, tr, td, i, d
  d=document;
  input = d.getElementById("myInput");
  filter = input.value.toUpperCase();
  tr=d.querySelectorAll('tr') 
  for (i = 1; i < tr.length; i++) {
    var rowContent = tr[i].textContent.replace(/[\\s]+/g, ' ');
    rowContent = rowContent.replace(/[\\s]+/g, ' ');
 
    if (rowContent) {
	  regEx=new RegExp(filter,"")
      if ( regEx.test(rowContent.toUpperCase()) ) {

        tr[i].style.display = "";
      } else {
        tr[i].style.display = "none";
      }
    }  
    
  }
}

Wenn man dem Powershell Kommando beispielsweise get-service voranstellt, kann in der erstellen HTML-Datei spaltenübergreifend gefiltert werden.