regex-Suche ersetzen in batch
Will ich tun, suchen/ersetzen mit regex-Muster in windows-batch auf einen Satz von Dateien. Es wird so etwas wie:
if the regex matches a line matches then replace it with a new line.
auch ich brauche, um eine variable hinzuzufügen, die in der regex zu ersetzen Sie einfach den Wert.
Weiß jemand, wie man mit der batch-script? Ich bin nicht vertraut mit es. Einige Beispiele vielleicht hilfreich.
InformationsquelleAutor standatw | 2011-08-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Profitieren Sie von findstr Befehl. Es unterstützt reguläre Ausdrücke mit eingeschränkter syntax. Sagen, Sie haben Dateien
Einen Befehl
Ausgabe
OK, kein sehr gutes Beispiel, denn Sie können dies tun, mit der guten alten
?
wildcard. Mein Punkt ist, dass Muster fürfindstr
ist ein regulärer Ausdruck.Kürzlich hatte ich ein ähnliches problem, aber ich gelangweilt versucht, herauszufinden, wie ersetzen regex-Muster. Ich bin mir nicht sicher, ob es sogar möglich mit nur native Windows-Befehle. So, für mehr einfach, aber dennoch einheitlichen Lösung ich bezog mich auf Windows Scripting Host. Meine Aufgabe war es, alle Dateien zu finden, haben in Ihrem Namen ein Datum im format dd.mm.JJJJ und ersetzen Sie das Datum mit den aktuellen.
Dem Skript ist:
Speicherte es unter dem Namen
u.wsf
und in den Ordner für diese Dateien. Die Erweiterung ist im Zusammenhang mitwscript
so beim Doppelklick auf die Datei wird es im GUI-Modus, sondern auch im command-line-Modus:InformationsquelleAutor Hnatt
Standard-tools unter Unix für diese sind
sed
- und Perl. Es gibt DOS - /Windows-ports von beiden.wird Ersetze "foo" mit "bar" in die named-Dateien. Sed älter ist und die option-i ist nicht standardisiert, und Perl ist viel vielseitiger, als eine ausgewachsene Programmiersprache, und seine regex-feature-set ist viel besser, aber für einen einfachen ein-aus-job, entweder ist in Ordnung.
InformationsquelleAutor tripleee