Rohrleitungen zu findstr Eingang
Ich habe eine text-Datei mit einer Liste von makro-Namen (einer pro Zeile). Mein Ziel ist, einen Druck, der, wie oft das makro ' s name erscheint in den Dateien des aktuellen Verzeichnisses.
Makro-Namen sind in C:\temp\macros.txt
.
type C:\temp\macros.txt
in der Eingabeaufforderung druckt die Liste in Ordnung.
Nun will ich leiten Sie die Ausgabe auf die standard-Eingabe von findstr
.
type C:\temp\macros.txt | findstr *.ss
(ss ist der Typ der Datei, wo ich bin auf der Suche nach dem macro Namen).
Scheint dies nicht zu funktionieren, bekomme ich kein Ergebnis (sehr schnell, es scheint nicht zu versuchen). findstr <the first row of the macro list> *.ss
funktioniert.
Ich habe auch versucht findstr *.ss < c:\temp\macros.txt
ohne Erfolg.
InformationsquelleAutor Gauthier | 2010-06-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, du bist verwirrend ist ein wenig, wie
findstr
funktioniert. Es bekommt input (Dinge, nicht die Dinge zu suchen), entweder als ein-Datei-name (Muster) oder von stdin, aber die Dinge, die du suchst immer auf der Kommandozeile als argument zufindstr
.findet den string
foo
in der Dateixyz.txt
.findet den string
x
in der Ausgabe des vorherigen Befehls (in diesem Fall den Inhalt der Dateimeh.txt
– eine schöne Verschwendung dertype
Befehl, viel verwandt, um häufige Missbrauch voncat
).Da Sie nach der zählt statt die eigentlichen Linien der makro-Namen, ich würde vorschlagen, einen anderen Ansatz. Dies setzt Voraus, dass Ihre Datei mit den Makros Listen Sie pro Zeile:
Den
for
Schleife iteriert über den Inhalt der Datei, line-wise. Es geht dann weiter zu drucken, den Namen, den Sie suchen und ausführenfind /c
was wirklich zählt, passende Zeilen.find
ist sehr hässlich. Danke!Gut, dann kann man die Iteration manuell (mit
for
) über alle*.ss
Dateien und werfenfind /c
bei Ihnen, analysieren Ihre Produktion und format-it-yourself. Und naja, die meisten der Zeit, es ist ziemlich offensichtlich, was für ein Programm akzeptiert pipelineeingaben da, der Pfad ist in der Regel für große Mengen von Daten, die sonst aus einer Datei gelesen. Ich habe noch, um ein Programm (PowerShell-cmdlets zählen nicht) , akzeptiert beliebige Argumente auch aus der pipeline.InformationsquelleAutor Joey