Что здесь делает команда DOS "findstr"? - PullRequest
1 голос
/ 03 мая 2011

Насколько я понимаю, findstr ищет текст в файлах.Что же тогда заставляет его искать шаблон в самом имени файла?

dir | findstr "test[0-9][0-9][0-9]test"

Изменяет ли труба свое поведение?Кто-то объяснит внутреннюю работу этого.Я знаю, что это работает, но я не понимаю, как это работает.Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 мая 2011

Канал перенаправляет стандартный вывод dir на стандартный ввод findstr, это работает, так как findstr будет использовать либо аргументы, переданные ему в командной строке, либо что-либо, переданное ему через stdin.

0 голосов
/ 03 мая 2011

Я сам не знаю findstr, но похоже, что он похож на grep.

Что он здесь делает, так это принимает dir (список каталогов) и поиск какой-либо строки в этом выводе.Затем он выводит только те строки, которые совпадают (эффективный поиск в списке каталогов).

Этот процесс (так называемый конвейер) довольно распространен в Unix-подобных операционных системах.Как вы видите, он также существует в Windows (и DOS до этого).

...