2017-06-20 4 views
0

Wenn ich den Befehl find zum Suchen nach einer Zeichenfolge und zum Drucken der Zeichenfolge verwenden, wird auch der Dateiname gedruckt. Gibt es eine Möglichkeit, den Dateinamen nicht zu drucken?Vermeiden Sie das Drucken des Dateinamens bei Verwendung des Befehls 'FIND' im Stapelscript

Für Ex: Betrachten Sie eine Datei Sample.log, die

INF000005: <0> Error(s) and <0> Warning(s) detected. 
INF000006: Execution completed successfully. 

I enthält, mit folgendem Befehl eine Batchdatei ausführen.

find " error " Sample.log >Result.txt 

Der Stromausgang in Result.txt ist

---------- .\Sample.log 
INF000005: <0> Error(s) and <0> Warning(s) detected. 

Erwartete Leistung in Result.txt ist

INF000005: <0> Error(s) and <0> Warning(s) detected 

Antwort

2

Simples möglich ist:

find " error " <Sample.log >Result.txt 
+0

Danke ... Es hat perfekt funktioniert ... –

0

einfachste Weg ist, um es in Rohr more:

find " error " Sample.log|more +2 >Result.txt 

"+2" weil find immer noch eine leere Zeile vor dem Header ausgibt.

Wenn Sie erwarten, mehr als 65534 Fehler zu finden, wird mehr das Skript unterbrechen und die Eingabe zum Fortfahren auffordern.

Allerdings ist die Antwort Klitos Kyriacou zuverlässiger und möglicherweise noch einfacher.

+1

'more' könnte hängen (await Benutzereingabe), wenn es mehr als 65.534 Textzeilen empfängt; vielleicht sollten Sie diese Einschränkung in Ihrer Antwort erwähnen ... – aschipfl

0
type Sample.log | find " error " >Result.txt 

wird das Problem vermeiden. find zeigt Ihnen den Dateinamen, da es sich um eine Zeichenfolge zu find in einem afn wie *.txt

Verwandte Themen