La tuyauterie pour findstr de l'entrée
J'ai un fichier texte avec une liste de noms de macros (une par ligne). Mon objectif final est d'obtenir une impression de combien de fois la macro nom apparaît dans les fichiers du répertoire courant.
Les noms de la macro sont en C:\temp\macros.txt
.
type C:\temp\macros.txt
dans l'invite de commande imprime la liste bien.
Maintenant, je veux tuyau de sortie sur l'entrée standard de findstr
.
type C:\temp\macros.txt | findstr *.ss
(ss est le type de fichier où je suis à la recherche pour les noms de macro).
Cela ne semble pas fonctionner, je n'obtiens aucun résultat (très rapide, il ne semble pas essayer du tout). findstr <the first row of the macro list> *.ss
fonctionne.
J'ai aussi essayé findstr *.ss < c:\temp\macros.txt
, sans succès.
OriginalL'auteur Gauthier | 2010-06-17
Vous devez vous connecter pour publier un commentaire.
Je pense que vous êtes confus un peu comment
findstr
œuvres. Il obtient d'entrée (pour trouver des choses à ne pas les choses à rechercher), soit comme un nom de fichier (pattern) ou à partir de stdin, mais les choses que vous cherchez sont toujours donné sur la ligne de commande comme argument pourfindstr
.trouve la chaîne
foo
dans le fichierxyz.txt
.trouve la chaîne
x
dans la sortie de la commande précédente (dans ce cas, le contenu du fichiermeh.txt
– une belle déchets de latype
de commande, un peu comme les mauvaises utilisations courantes decat
).Puisque vous êtes après la compte à la place de la lignes de la macro noms apparaissent dans l', je vous suggère une approche différente. Cela suppose que votre fichier contenant les macros listes un par ligne:
La
for
boucle itère sur le contenu de votre fichier, ligne-sage. Il procède ensuite à l'impression du nom que vous recherchez et de l'exécution defind /c
qui compte vraiment en correspondance des lignes.find
est très laid. Merci!Eh bien, vous pouvez parcourir manuellement (avec
for
) sur l'ensemble de*.ss
fichiers et de les jeterfind /c
à eux, d'analyser sa sortie et le format, il vous-même. Et bien, la plupart du temps, il est assez évident qu'un programme accepte comme entrée pipeline depuis que le chemin est généralement utilisé pour de grandes quantités de données qui sont par ailleurs de lire à partir d'un fichier. J'ai pas encore vu d'un programme (les applets de commande PowerShell ne comptent pas) qui accepte des arguments arbitraires également à partir de la canalisation.OriginalL'auteur Joey