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

gelöst Findstr mit zwei Parametern ODER-verknüpft?

Mitglied: Manu123

Manu123 (Level 1) - Jetzt verbinden

10.08.2010 um 08:41 Uhr, 7782 Aufrufe, 11 Kommentare

Hallo,

ich bin neu hier und habe bis jetzt eigentlich meine Probleme immer lesend lösen können. Im Moment hänge ich aber an einem Problem, das hier bislang nicht explizit beschrieben wurde. Es wäre toll, wenn ihr mir helfen könntet.

Es geht um die Verkettung von Parametern per findstr. Ich habe eine größere txt-Datei in html-Format in der Quelltext gespeichert ist.
Das Ganze sieht etwa so aus:

<td title="test123456678">
test123
...
</td>
<td>12345</td>
<td title="test456">
test456

Davor und danach sind Zeilen, die ich nicht dabeihaben will. Nun will ich die Zeilen mit dem Anfang "<td" haben und Zeilen, die kein < bzw > enthalten. Am günstigsten wären zwei findstr-Operationen, die eine mit

findstr /c:"<td"

die andere mit

findstr /v "<"

Diese beiden dann mit ODER verknüpfen, sodass beide Arten von Zeilen im Endeffekt in der richtigen Reihenfolge in einer neuen txt stehen.
Was ich gefunden habe ist folgendes:

https://www.administrator.de/index.php?content=98647

for /f "delims=" %%c in ('findstr /c:"Inserted " %1 ^|findstr /e "CSM"') do (set /a xc+=1)

was bei mir analog dann ja

for /f "delims=" %%c in ('findstr /c:"<td" %1 ^|findstr /v "<"') do echo > neu.txt

sein dürfte. Das klappt aber nicht. Habt ihr vielleicht eine Idee?
Mitglied: mathe172
10.08.2010 um 11:16 Uhr
Hallo Manu123!

Ich bin mir zwar nicht ganz sicher, aber so wie es aussieht, rufst du die Zeile ja nicht mit Parametern auf. Da aber "%1" der für den ersten Parameter steht (%2 für den zweiten usw...) und, wenn ich das richtig sehe wie es in deiner Zeile als Name der zu Durchsuchenden Datei verwendet. Versuch doch mal anstatt dem %1 den Namen der Datei mit Endung einzugeben

Mathe172
Bitte warten ..
Mitglied: pieh-ejdsch
10.08.2010 um 11:27 Uhr
Hi Manu123,

sodass beide Arten von Zeilen im Endeffekt in der richtigen Reihenfolge in einer neuen txt stehen

da musst Du das ganze mit ODER || Verketten (was warscheinlich nicht so geht)
im moment sucht Deine erste Anweisung alle Zeilen, welchen mit <td beginnen und in die Zweite (nach) | Anweisung zeigt die Zeilen wiederum nicht an.

mach es in etwa so:
type "D:\Meine.txt" | (findstr /b "<td"||findst /v "< >")>>neu.txt

Gruß Phil
Bitte warten ..
Mitglied: mathe172
10.08.2010 um 11:37 Uhr
Hallo pieh-ejdsch

Danke für den Hinweis, das hab ich übersehen. Aber heisst || nicht "wenn das davor nicht tut, mach das danach"?
Vielleicht mir "OR" ? (Hab von logischen Operatoren keine Ahnung)

Mathe172
Bitte warten ..
Mitglied: pieh-ejdsch
10.08.2010 um 11:50 Uhr
aaarg ich dachte die ODER Anweisung bekommt auch den inPut aber nöö

01.
>"%temp%\tmp" echo "^<td  
02.
for /f "usebackq delims=" %%i in ("D:\Meine.txt") do (echo "%%i"|findstr /b /g:"%temp%\tmp" >>neu.txt 
03.
	echo "%%i"|findstr /v "< >">>neu.txt 
04.
)
Gruß Phil
Bitte warten ..
Mitglied: Manu123
10.08.2010 um 11:56 Uhr
Hallo Phil,

danke für Deine Antwort.

leider meint cmd, dass || syntaktisch an dieser Stelle nicht verarbeitbar ist. Ich kenne mich mit batch-Befehlen nicht genügend aus, deswegen weiß ich auch nicht, ob es möglich ist das direkt zu verknüpfen.

Eine alternative strategie wäre eventuell 2x findstr darüberlaufen zu lassen, mit dem ergebnis die zeilennummern auszugeben. dann diese 2 dateien zusammenführen und von dieser quelle aus die fertige datei zu bekommen?

grüße
Bitte warten ..
Mitglied: pieh-ejdsch
10.08.2010 um 12:04 Uhr
Hast Du jetzt mal diese Version genommen

wenn Du das als Batch laufen lässt ist es mit %%i richtig
wenn als Befehlszeilen dann jeweils anstatt den %%i ein %i in die Zeile schreiben

Gruß Phil
Bitte warten ..
Mitglied: Manu123
10.08.2010 um 12:09 Uhr
Ah, da warst du schneller als ich.

ich vermute tmp1 ist gleich tmp, das habe ich mal korrigiert.

>"%temp%\tmp1" echo "<td"
for /f "delims=" %%i in ("Suche.txt") do (echo "%%i"|findstr /b /g:"%temp%\tmp1" >>neu.txt
echo "%%i"|findstr /v "< >">>neu.txt

)

allerdings verstehe ich nicht ganz was du im endeffekt machst .

Ergebnis ist übrigens, dass in der neu.txt

"Suche.txt"

steht. Ich verzweifle
Bitte warten ..
Mitglied: pieh-ejdsch
10.08.2010 um 13:41 Uhr
ich vermute tmp1 ist gleich tmp, das habe ich mal korrigiert.
ja ich hatte das nur so daher geschrieben deshalb ein bisschen Fehlerbehaftet

"Suche.txt" - das war auch mein Fehler.

Ich hatte nur die For-Schleife falsch geschrieben
for /f "delims=" %%i in ("Suche.txt") do
so ist es eine For-Schleife für: "DurchAckern von Zeichenfolgen in Anführungszeichen"
  • ohne "Anführungszeichen um die (Zeichenfolge in der AnweisungsKlammer)
ist es eine For-Schleife fürs: Zeilenweise DurchAckern von Datei(en) ohne Sonder& Leerzeichen im (Pfad-) Namen

richtig ist bei eine For-schleife fürs: "Zeilenweise DurchAckern von Datei(en) mit Sonder& Leerzeichen im (Pfad-) Namen in Anführungszeichen" die verwendung von usebackq hinter /f
so hab ich es oben Korrigiert


heist im Umkerschluss
wenn Deine Du die Anführungszeichen um den "Dateinamen-ohne-Leer-und-Sonderzeichen.txt" entfernst reicht es.

[Edit]
zur Erklärung:
die Zeilen werden mit "delims=" kommplett in die Variable %%i gesetzt
mit | wird die Ausgabe vom Echo als Eingabe von Findstr genommen
in der Datei %temp%\tmp steht auch das einzelne Anführungszeichen des gesamten Suchstrings
welches mit /b /g:%temp%\tmp
vom beginn der Zeile vom Echo (auch mit Anführungszeichen am Anfang und Ende) abgeglichen wird
>> schreibt das Ergebnis vom findstr in die "neu.txt"

auch zu lesen in XP-Hife oder online unter:
Befehlzeilenreferenz A-Z
- Verwenden von Befehlsumleitungsoperatoren
- For
- Findstr
oder im CMD-Fenster mit: Befehl /?
[\Edit]

Gruß Phil
Bitte warten ..
Mitglied: Manu123
10.08.2010 um 14:29 Uhr
Soweit so gut, vielen Dank bis hierhin.

Was ich nun als Ergebnis rausbekomme>

Aus

<td title="test123456678">
test123
...
</td>
<td>12345</td>
<td title="test456">
test456

Wird

" "
" "
" "
" test123"
" ..."
" test456"
" "

Die Leerzeichen hat er wohl im ersten Post nicht mitkopiert, aber das macht ja keinen Unterschied, die bekomme ich problemlos weg. Das Problem ist jetzt, dass ich nicht weiß woher die Anführungszeichen kommen bzw. wie ich sie wegbekomme. Außerdem sind die Zeilen mit <td am Anfang nicht kopiert worden.

grüße
Bitte warten ..
Mitglied: pieh-ejdsch
11.08.2010 um 13:10 Uhr
Moin Manu123,

ich wollte mit dem EscapeZeichen ( ^ ) das folgende UmleitungsZeichen ( < ) fürs ECHO als Normal darzustellendes Zeichen für das ECHO einschliessen.
das hat aber nicht geklappt, weil das Führende Anführungszeichen ( " ) schon dafür gesorgt hatte. (obwohl kein Abschliessendes AnführungsZeichen vorhanden ist - grübel)

es wurde aus dem Ergebnis vom Findstr in die Datei Umgeleitet mit AnführungsZeichen, so wie die Eingabe vom Echo ist.
fürs nichtdarstellen der AnführungsZeichen vom Findstr nehmen wir ein FolgeBefehlWennPositivDann ( && )

Jetzt sogar als geteste BetaVersion:
01.
set Eingabe="E:\AdminHelp\Test.txt" 
02.
set Ausgabe="E:\AdminHelp\neu.txt " 
03.
type nul>%Ausgabe% 
04.
>"%temp%\tmp" echo "<td 
05.
for /f "usebackq delims=" %%i in (%Eingabe%) do (echo "%%i"|findstr /b /g:"%temp%\tmp" &&>>%Ausgabe% echo %%i 
06.
	echo "%%i"|findstr /v "< >"&&>>%Ausgabe% echo %%i 
07.
)
Gruß Phil
Bitte warten ..
Mitglied: Manu123
11.08.2010 um 13:31 Uhr
Moin Phil,

perfekt! Danke Dir vielmals, klappt alles wunderbar
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Zwei fragen zu findstr
gelöst Frage von netlordBatch & Shell8 Kommentare

Hallo Administratoren ;) ich habe zwei Fragen zu findstr 1.) wir haben Rechner mit unterschiedlicher Anzahl von Raid-Controllern. Diese ...

Windows Tools
Findstr und regex
gelöst Frage von tobmesWindows Tools5 Kommentare

Hi Experten, ich habe ziemlich viele PDF-Dateien, die ich mittels eines Batch-Files nach einem Bestimmten Muster durchsuchen möchte. Die ...

Outlook & Mail

Verknüpfte Kalender verloren - Outlook 2010

Frage von freeskierchrisOutlook & Mail3 Kommentare

Hallo, aus ungeklärter Ursache hat mein Outlook 2010 die.pst-Datei verloren. Nach dem erneuten Hinzufügen der Datendatei, waren alle Verknüpfungen ...

Windows 7

Verknüpften Ordner durchsuchen?

gelöst Frage von fuxxigWindows 73 Kommentare

Hallo zusammen, ich glaube, ich stehe grade auf dem schlauch folgende situation: in einem netzlaufwerk wurde ein ordner angelegt. ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 3 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...