Какой самый простой способ узнать количество файлов в каталоге папок?

#batch-file

#пакетный файл

Вопрос:

Это легко достижимо с помощью скриптов MS-DOS, или мне придется прибегнуть к C , Python, Perl или другим способам достижения этой цели?

Комментарии:

1. Вау! Вы действительно используете MS-DOS? Не думал, что это все еще живо…

2. На самом деле я имел в виду любой самый простой способ добиться этого при использовании Windows 7

3. команда dir сообщает количество файлов / папок

4. @Fredrik: он сообщает вам только количество файлов в текущем каталоге, он не включает файлы в подкаталогах (если только нет какого-то переключателя, о котором я не знаю — DOS не мой конек!)

5. dir / s является рекурсивным и сообщает общее количество файлов / папок

Ответ №1:

Чтобы быть самым простым, он должен пройти тест «моя бабушка может это сделать».

После тщательного сравнительного анализа я решил, что самым простым подходом было бы открыть каждую папку в проводнике Windows, посмотреть на количество файлов в строке состояния и использовать калькулятор для подсчета количества.

Это медленно, но эффективно.

Редактировать

Возможно, это не так просто, но, будучи опытным пользователем cygwin, я предпочитаю использовать команду find и wc.

 find -type 'f' | wc -l
  

Комментарии:

1. Я имел в виду самый простой способ, но быстрее, чем открывать каждую папку в проводнике Windows.

2. @stanigator, ты воспринял меня слишком серьезно.

Ответ №2:

в cmd вы можете сделать:

 set i=0
for /f %%G in ('dir /b /A-d <dirname>') do set /a i=i 1
  

в PowerShell (который доступен по умолчанию в Windows 7) вы можете сделать:

 Get-ChildItem <dirname> | Where-Object { -not $_.PSIsContainer } | Measure-Object
  

Эти команды учитывают только файлы, если вы хотите также учитывать каталоги, удалите /A-d для версии dos и Where-Object { -not $_PSIsContainer } для команды powershell. Если вы хотите выполнить рекурсию в подкаталоги, используйте Get-ChildItem -Recurse в powershell или добавьте /s переключатель в команду dir в версии dos

Комментарии:

1. И если вы хотите также подсчитать количество файлов в подкаталогах, добавьте /s переключатель, который даст вам 'dir /b /A-d /s <dirname>'

Ответ №3:

В Python это очень просто:

 import os

walker = os.walk(path_to_search_root)
files = 0

for dir in walker:
    files  = len(dir[2]) #dir[2] is the list of files in the directory

print files