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-Key: 555448

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

Printed on: April 26, 2024 at 06:04 o'clock

Mitglied: 143127
143127 Mar 06, 2020 updated at 09:16:29 (UTC)
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
Member: volker01
volker01 Mar 06, 2020 at 10:45:07 (UTC)
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.
Member: laster
Solution laster Mar 06, 2020 at 11:54:11 (UTC)
Goto Top
Hallo,

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

vG
LS
Member: volker01
volker01 Mar 06, 2020 at 13:00:23 (UTC)
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"