Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Liste von Feldwerten erstellen und kombinieren

Frage Entwicklung Batch & Shell

Mitglied: dasgute

dasgute (Level 1) - Jetzt verbinden

30.03.2012, aktualisiert 07:39 Uhr, 1792 Aufrufe, 1 Kommentar

Hallo,

habe eine HTML Datei (pdir.htm) die eine Tabelle mit vielen Zellwerten enthält. Dabei sollen die namen der eingabefelder ermittelt, aufgelistet werden.

01.
... 
02.
<tr bgcolor=#d3d3d3><td>1.<td>&nbsp;<input class="inputc" size="40" name="17006" value="" maxlength=2047><td>2.<td>&nbsp;<input class="inputc" size="40" name="16942" value="" maxlength=2047> 
03.
<tr bgcolor=#dcdcdc><td>3.<td>&nbsp;<input class="inputw" size="40" name="17134" value="" maxlength=2047><td>4.<td>&nbsp;<input class="inputw" size="40" name="17070" value="" maxlength=2047> 
04.
<tr bgcolor=#d3d3d3><td>5.<td>&nbsp;<input class="inputc" size="40" name="17262" value="" maxlength=2047><td>6.<td>&nbsp;<input class="inputc" size="40" name="17198" value="" maxlength=2047> 
05.
<tr bgcolor=#dcdcdc><td>7.<td>&nbsp;<input class="inputw" size="40" name="17390" value="" maxlength=2047><td>8.<td>&nbsp;<input class="inputw" size="40" name="17326" value="" maxlength=2047> 
06.
...
Ausgabe soll eine Liste mit den Feldnamen von oben.
01.
17006 
02.
16942 
03.
17134 
04.
17070 
05.
17262 
06.
17198 
07.
17390 
08.
17326
Nun sollen den Feldnamen diese Values zugeordnet werden.
01.
Eintrag1 
02.
Eintrag2 
03.
Eintrag3 
04.
Eintrag4 
05.
Eintrag5 
06.
Eintrag6 
07.
Eintrag7 
08.
Eintrag8
Nun sollen den Feldnamen und Values zusammengefügt werden.
01.
17006=Eintrag1 
02.
16942=Eintrag2 
03.
17134=Eintrag3 
04.
17070=Eintrag4 
05.
17262=Eintrag5 
06.
17198=Eintrag6 
07.
17390=Eintrag7 
08.
17326=Eintrag8
Nun soll das ganze in diese Ausgabe umgewandelt werden und so aussehen
01.
... 
02.
<tr bgcolor=#d3d3d3><td>1.<td>&nbsp;<input class="inputc" size="40" name="17006" value="Eintrag1" maxlength=2047><td>2.<td>&nbsp;<input class="inputc" size="40" name="16942" value="Eintrag2" maxlength=2047> 
03.
<tr bgcolor=#dcdcdc><td>3.<td>&nbsp;<input class="inputw" size="40" name="17134" value="Eintrag3" maxlength=2047><td>4.<td>&nbsp;<input class="inputw" size="40" name="17070" value="Eintrag4" maxlength=2047> 
04.
<tr bgcolor=#d3d3d3><td>5.<td>&nbsp;<input class="inputc" size="40" name="17262" value="Eintrag5" maxlength=2047><td>6.<td>&nbsp;<input class="inputc" size="40" name="17198" value="Eintrag6" maxlength=2047> 
05.
<tr bgcolor=#dcdcdc><td>7.<td>&nbsp;<input class="inputw" size="40" name="17390" value="Eintrag7" maxlength=2047><td>8.<td>&nbsp;<input class="inputw" size="40" name="17326" value="Eintrag8" maxlength=2047> 
06.
...
in ShellScript habe ich zumindest eine Zellenliste mit diesem code bekommen (Ausgabe ...17006=0 u.s.w...).

cat pdir.htm |grep name|grep value|cut -d '"' -f6,14|sed s/\"/\ /|xargs -n1 echo|sed s/$/=0/

Kann man das ganze mit einer cmd datei lösen eventuell mit Findstr, Type? Ich benötige eine cmd-Datei oder vbs-Datei. Ich benötige das script auf einem Windows-Rechner

Vielen Dank für Hilfe und evtl Denkansätze
Mitglied: bastla
30.03.2012 um 16:25 Uhr
Hallo dasgute!

Sollte das wirklich so gemeint sein, dass "Eintrag1" sich aus dem konstanten Text "Eintrag" und der variablen Nummer lt
<td>1.<td>
ergeben soll, könnte das per VBS etwa so gehen:
01.
Ein = "D:\pdir.htm" 
02.
Aus = "D:\pdir_new.htm" 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
 
06.
Set rE = New RegExp 
07.
rE.Global = True 
08.
rE.Pattern = "<td>(\d)\.<td>&nbsp;<input class=""input(.)"" size=""40"" name=""(\d{5})"" value="""" maxlength=2047>" 
09.
 
10.
T = fso.OpenTextFile(Ein).ReadAll 
11.
fso.CreateTextFile(Aus).Write rE.Replace(T, "<td>$1.<td>&nbsp;<input class=""input$2"" size=""40"" name=""$3"" value=""Eintrag$1"" maxlength=2047>")
Übrigens: "sed" gibt es auch für Windows ...
Falls das eher so gedacht wäre, dass tatsächlich eine Zwischendatei (in meinem Beispiel unten "Zuordnung.txt") mit den Feldnamen erstellt werden soll, die dann manuell mit den Einträgen ergänzt wird, dann etwa so:
01.
'MakeList.vbs 
02.
Ein = "D:\pdir.htm" 
03.
Aus = "D:\Zuordnung.txt" 
04.
 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
 
07.
Set rE = New RegExp 
08.
rE.Global = True 
09.
rE.Pattern = "<td>(\d)\.<td>&nbsp;<input class=""input(.)"" size=""40"" name=""(\d{5})"" value="""" maxlength=2047>" 'von oben übernommen; ließe sich vermutlich auch gefahrlos noch kürzen 
10.
 
11.
T = fso.OpenTextFile(Ein).ReadAll 
12.
Set A = fso.CreateTextFile(Aus) 
13.
Set Matches = rE.Execute(T) 
14.
For Each Match In Matches 
15.
    A.WriteLine Match.SubMatches(2) & "=" 
16.
Next
und
01.
'ReplaceByList.vbs 
02.
Ein = "D:\pdir.htm" 
03.
Aus = "D:\pdir_new.htm" 
04.
Liste = "Zuordnung.txt" 
05.
 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
T = fso.OpenTextFile(Ein).ReadAll 
08.
L = Split(fso.OpenTextFile(Liste).ReadAll, vbCrLf) 
09.
 
10.
For Each Zuordnung In L 
11.
    If InStr(Zuordnung, "=") > 0 Then 
12.
        Feld = Split(Zuordnung, "=")(0) 
13.
        Wert = Split(Zuordnung, "=")(1) 
14.
        T = Replace(T, "name=""" & Feld & """ value=""""", "name=""" & Feld & """ value=""" & Wert & """") 
15.
    End If 
16.
Next 
17.
 
18.
fso.CreateTextFile(Aus).Write T
Noch als Hinweis zu beiden Ansätzen: Wenn die Originaldatei überschrieben werden soll, einfach nur jeweils anstelle von "CreateTextFile(Aus)" "CreateTextFile(Ein)" verwenden ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Feldwert als Überschrift in Access Bericht
Frage von Dr.CornwallisMicrosoft Office1 Kommentar

Liebe Gemeinde, folgende Situation: Ich habe einen Access Bericht, dieser zeigt die täglichen Arbeitszeiten der Mitarbeiter an, inkl. Datum. ...

Batch & Shell
Batches kombinieren
Frage von stridingBatch & Shell1 Kommentar

Hallo! Ich stehe mal wieder vor einem "Problem", das ich leider nicht gelöst bekomme. Vor einiger Zeit habe ich ...

Batch & Shell
Powershell PSObject Liste erstellen und Ausgeben
gelöst Frage von MarabuntaBatch & Shell1 Kommentar

Ich will eine Liste erstellen mit Dateiname, Dateiversion und Produktversion Es werden einige Rechner abgefragt, falls möglich sollte es ...

Windows Netzwerk
IPv6 Liste erstellen (fixe IPs)
gelöst Frage von schicksalWindows Netzwerk4 Kommentare

Hallo zusammen, ich bin gerade am überlegen wie ich bei einem IPv6 Netzwerk etwas Ordnung bringen könnte. Es handelt ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 4 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...