Як перераховувати імена файлів у Windows під час пошуку команди Unix?


0

Я шукаю еквівалентний командний рядок у Windows з наступною командою Unix:

find test -name '*.txt' -print

Ця команда перелічує кожне ім'я файлу, що знаходиться в папці і підпапках 'test', з розширенням .txt. Крім того, у списку відображається ім'я вкладеної папки, якщо файл знаходиться в підтеці:

file1.txt
sub/file2.txt
sub/file3.txt
sub2/file4.txt
file5.txt

Хто-небудь знає еквівалент на Windows?

Відповіді:


0

Команда доброго старого "dir" може досягти цього. Спробуйте dir *.txt /s . dir працює з символами підстановки, де * - заміна на 0 або більше символів ? - точно за 1 символ / s - рекурсивно пересуватися в підпапки


ОК ви праві, спасибі за вашу відповідь. Правильний синтаксис для мого випадку: dir * .txt / B / S. / B, щоб мати тільки імена файлів та / S для відображення файлів підпапок. Проблема ном в тому, що я маю повний шлях моїх файлів замість відносного шляху. Чи знаєте ви, як отримати відносний шлях?
superrache

Можливо, вам знадобиться скрипт, щоб видалити поточний каталог з друкованого шляху і відобразити цей вивід (що еквівалентно відносному шляху). stackoverflow.com/questions/8385454/…
Dhiwakar Ravikumar

Це саме те, що я хочу, дякую.
superrache

0

або якщо ви використовуєте сучасну версію вікон, що постачається з повноцінним пристроєм, виконайте наведені нижче дії.

  get-childitem *.txt -recurse|Foreach-Object -Process { Resolve-Path -Relative $_.FullName}

який принесе вам щось подібне

.\subdir\test.txt
.\subdir2\test1.txt

тощо


0

Ви також можете розглянути можливість використання Cygwin яка приносить вам оболонку Unix і багато пакетів для Windows.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.