volker01
Goto Top

Windows CMD und findstr

Hallo,

ich versuche eine Zeichenfolge aus einer Text-Datei auszulesen und es klappt einfach nicht.

Der Inhalt der Textdatei ist:

---------- C:\PCS\PCS_SCRIPTS\KONFIG_FFS\BLITZ8.FFS_BATCH
        <VersioningFolder Style="Replace">S:\blitz8_DaSi\ffs_Papierkorb\%year%-%month%-%day%</VersioningFolder>  

Ich suche nach:

\%year%-%month%-%day%</

Versuch 1:
findstr /i /R "\\^%year^% ^%month^% ^%day^%\<\\\\" "C:\temp\ffbat.txt"  
Ergebnis: es werden die ersten 3 Zeilen ausgegeben.

Versuch 2:
findstr /i /R "\\%%year%% %%month%% %%day%%\<\\\\" "C:\temp\ffbat.txt"  
Ergebnis:
Die Zeile:
<VersioningFolder Style="Replace">S:\blitz8_DaSi\ffs_Papierkorb\%year%-%month%-%day%</VersioningFolder>
wird ausgeben.

Aber ich suche nach der Zeichenfolge mit Bindestriche:
Versuch 3:
findstr /i /R "\\^%year^%-^%month^%-^%day^%\<\\\\" "C:\temp\ffbat.txt"  
Kein Treffer.

Am besten wären aber, statt der Bindestriche kann ein beliebiges Zeichen folgen, oder gar keines.
Versuch 4:
findstr /i /R "\\^%year^%.*^%month^%.*^%day^%\<\\\\" "C:\temp\ffbat.txt"  
Kein Treffer.

Hat jemand eine Idee?
Viele Grüße volker01

Content-ID: 555448

Url: https://administrator.de/contentid/555448

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

143127
143127 06.03.2020 aktualisiert um 10:16:29 Uhr
Goto Top
XML-Dateien sollte man immer über einen Parser auslesen oder beschreiben. Mit der Powershell ein Klacks. Findest du hier haufenweise Beispiele im Forum. Batch ist für sowas schon lange nicht mehr zeitgemäß unter anderem auch aus Kodierungsgründen!
z.B.
XML mit Powershell bearbeiten
Powershell und XML
CSV zu XML Probleme mit PowerShell
und viele mehr
volker01
volker01 06.03.2020 um 11:45:07 Uhr
Goto Top
Das Auslesen ist aber Teil eines größeren cmd-Scripts,
es wäre schön wenn ich innerhalb der cmd bleiben könnte.
Die auszulesende Datei liegt als Plaintext vor.
laster
Lösung laster 06.03.2020 um 12:54:11 Uhr
Goto Top
Hallo,

findstr /i /R "\%%year%%.%%month%%.%%day%%</" test.txt  
funktioniert in CMD.

vG
LS
volker01
volker01 06.03.2020 um 14:00:23 Uhr
Goto Top
Hallo laster,
danke sieht gut aus,
mein Fehler war der letzte Schrägstrich, den hatte ich als Backslash behandelt.
Und dann funktioniert auch ".*"
Somit kann zwischen sich "year month day" ein Zeichen befinden, oder auch nicht.
Den ersten Backslash würde ich aber noch maskieren.
findstr /i /R "\\%%year%%.*%%month%%.*%%day%%</" "C:\temp\ffbat.txt"