Как посчитать количество файлов в папке windows bat

Обновлено: 03.07.2024

Какую команду вы бы использовали cmd.exe для определения количества файлов в текущем каталоге?

Здесь есть опция powershell?

Обновление : я надеялся избежать dir , поскольку я знаю, что в текущем каталоге более 10000 файлов. Хотел избежать вывода перечисления в окно cmd. Спасибо!

Если вы хотите сделать это cmd , то вот тривиальный способ сделать это:

Это предполагает командную строку. В командном файле вы бы сделали

что делает вещи немного лучше. Вы можете оставить >nul в пакете, так set /a как не будет отображать результат, если запустить из пакетного файла - он делает это непосредственно из командной строки. Кроме того, % знак в for цикле должен быть удвоен.

Я видел довольно много случаев, когда люди пробовали отличные трюки find /c . Будьте очень осторожны с этим, поскольку различные вещи могут сломать это.

Используя find /c /v и попробуйте найти что-то, что никогда не входит в имя файла, например :: . Не будет. Работа. Достоверно. Когда в окне консоли установлены растровые шрифты, вы можете получить эти комбинации символов. Я могу включать символы в имени файла , например : , ? и т.д. в их полной ширине вариантов, например, которые затем преобразуются в их обычных ASCII - аналоги , которые будут нарушать это. Если вам нужен точный счет, не пытайтесь это сделать.

Используйте find /c и попробуйте найти то, что всегда включено в имя файла. Очевидно, точка ( . ) - плохой выбор. Другой ответ предполагает

который предполагает несколько вещей о локали пользователя, не все из которых гарантированно верны (я оставил комментарий с подробным описанием проблем) и возвращает один результат слишком много.

Как правило, вы хотите использовать find на dir /b который отсекает все без файла вещи и позволяет избегать ошибок fencepost таким образом.

Таким образом, элегантный вариант будет:

который сначала выведет все имена файлов, по одной строке. А затем посчитайте все строки того вывода, которые не пусты. Поскольку имя файла не может быть пустым (если я не пропустил что-то, но Unicode не запутает это согласно моим тестам).

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

у меня получилось только посчитать суммарное число файлов в заданной папке

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


Как батником сделать несколько копий файлов
Добрый день необходимо батником в папке сделать 200 одинаковых копий файла 1.htm с названиями 1, 2.


Характеристики файлов заданного типа в заданной папке
Как-то совсем не понятно. Задание следующее : Создайте командный файл, выводящий.

Вывод количества папок и файлов в заданной папке и их размера
Надо написать скрипт, который будет выводить количество папок и файлов в заданной папке и их.

на примере папки Tools с подпапками и файлами рядом со скриптом
Не могли ли бы вы прокомментировать свой код, а то мало что понятно, хочется очень разобраться в данной реализации. Мне пока понятно, что в данной строке мы подсчитываем файлы. Вот мне конкретно не понятно, для чего нужно занулять 2 потока? И эта строчка также непонятна Вот мне конкретно не понятно, для чего нужно занулять 2 потока? <NUL - это не зануление, а передача перевода каретки и переноса строки во входной поток команды,
чтобы set /p не запрашивал ввода у пользователя. Эта техника позволяет печатать информацию двумя командами в одной и той же строке.

n - значит имя файла/каталога
модификатор

x - расширение имени.
Подробнее в статье и в справке for /?

2>NUL
Второй поток (поток ошибок) зануляется на случай, если команда dir выведет ошибку, а она это сделает, если в каталоге не будет файлов.

Если конкретизировать, то подсчитываем их (файлы) в всех вложенных каталогах в т.ч., и даже не файлы, а количество строк в выводе команды dir. Спасибо, вот возник еще вопрос. Как возникает вывод названий папок? С помощью модификатора

n? Так же поясните пожалуйста с переводом каретки <nul.Я просто читал вашу тему про объяснение nul там про перевод каретки ничего не было сказано. И еще вопрос. Для чего нужно обрамлять команды кавычками?

Так же поясните пожалуйста с переводом каретки <nul.Я просто читал вашу тему про объяснение nul Потому что это не имеет прямого отношения к устройству NUL.
Это свойство самого потока, завершать последовательность ввода символами CR LF.
Наберите в консоли set /p= и увидите, что пока команда не получит эту последовательность (аналог - это нажатие кнопки ENTER), то консоль не вернет управление.

Модификатор только преобразовывает полное имя в нужное, в соответствии с подставляемыми символами модификаторами.
Смотрите пример.
Уберите модификаторы, еще замените команду set /p на echo и увидите в чем разница:

По разным причинам. Но, в моем коде ни одна из команд не обрамлена кавычками. Уточните свой вопрос. Да, извиняюсь, не правильно спросил. Конкретно зачем надо было набор (множество) обрамлять кавычками? Также зачем надо было обрамлять

Добавлено через 54 минуты
И ещё, забыл дописать, для чего нужна тильда в параметре %1? Просто я в 1-й раз вижу, чтобы там тильда была

Добавлено через 54 минуты
И какую роль играет"="?

Я попробовал убрать "=" и выскакивает ошибка. Насколько я понял = присваивает передаваемую строку, т.е. название папки? Конкретно зачем надо было набор (множество) обрамлять кавычками? Чтобы можно было указывать каталог, в имени которого есть пробел и/или другие спецсимволы.
И ещё, забыл дописать, для чего нужна тильда в параметре %1 Чтобы убрать обрамляющие кавычки, если они были заданы аргументом.
Я попробовал убрать "=" и выскакивает ошибка. Насколько я понял = присваивает передаваемую строку, т.е. название папки? Правильно поняли. В данном случае имя переменной опущено. Это академически неверно, но синтаксически допустимо.

Я конечно опоздал года на 3,но мне срочно нужна помощь с кодом в этой теме,может быть кто-то подскажет как при выводе поменять местами имя папки и колличество файлов в ней?Заранее спасибо

Мониторинг появления файлов в заданной папке, их печать и удаление
Задача такая: Если в папке какой-то файл есть, должен этот файл печататься и потом удалятся. Для.


Создание текстового файла со списком имён находящихся в заданной папке файлов с указанием их расположения
Добрые Люди помогите, есть папка с файлами и папками интересует ВАТ который создаст файл ТХТ в.

Количество всех файлов в указанной папке
Скрипт, который находит количество всех файлов в указанной папке. Вывод осуществляется на экран.

Написать сценарий для подсчёта количества файлов в заданной папке, включая файлы во вложенных папках
для командной строки реализация FOR Написать сценарий, который который подсчитает количество.

Конфигурация компьютера
Процессор: Intel Core i7-3770K
Материнская плата: ASUS P8Z77-V LE PLUS
Память: Crucial Ballistix Tactical Tracer DDR3-1600 16 Гб (2 x 8 Гб)
HDD: Samsung SSD 850 PRO 256 Гб, WD Green WD20EZRX 2 Тб
Видеокарта: ASUS ROG-STRIX-GTX1080-O8G-11GBPS
Звук: Realtek ALC889 HD Audio
Блок питания: be quiet! Straight Power 11 650W
CD/DVD: ASUS DRW-24B5ST
Монитор: ASUS VG248QE 24"
ОС: Windows 8.1 Pro x64
Индекс производительности Windows: 8,1
Прочее: корпус: Fractal Design Define R4

Последний раз редактировалось Petya V4sechkin, 20-06-2008 в 17:05 .

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Как можно описать ту же самую операцию только с учётом всех вложеных папок и используя сортировку по расширению?
Спасибо.

Конфигурация компьютера
Процессор: Intel Core i5-4570, 3200 MHz
Материнская плата: Asus Z97-K
Память: 2 x 8Gb DDR3-1333 Corsair Vengeance LP CML16GX3M2A1600C9
HDD: Samsung SSD 850 PRO 256G (238Gb), WDC WD1001FALS (1Tb, 7200 RPM, SATA-II), WDC WD10EFRX (1Tb, SATA-III)
Видеокарта: MSI N750Ti (MS-V310)
Звук: Realtek ALC887
Блок питания: Chieftec GPS-650AB 650W
CD/DVD: HL-DT-ST DVDRAM GSA-4167B
Монитор: 24" Philips 240PW9ES
ОС: Windows 7 Ultimate x64 SP1
Индекс производительности Windows: 7.6
P.S. Ограничение: не считает файлы, в расширении которых имеются символы арифметических операторов (например "-")

ребят , я опоздал на три года конечно, но нужно вот что:

Ну ладно, попробуем пока сделать без этого.

Я нашел в инете такой скрипт:
@echo off
chcp 1251 > nul
for /f %%i in ('dir /b /a-d') do (echo "%%i" & set /a num+=1)
echo in catalog %num% files
pause

Скрипт выводит список файлов в данной папке. Мне нужно, что бы он выводил количество файлов в данной папке и в других папках, которые в этой папке.

Мне так же не понятно, что такое: ('dir /b /a-d')


Я находил в интернете скрипты написанные на PHP, которые выполняют эту задачу. Но для запуска PHP файла нужен Denwer, а мне нужно реализацию, что бы установка дополнительного ПО не требовалась.

Так же я находил скрипт на PASCAL, который не понятно как запускать тоже.

Последний раз редактировалось so1idsnake; 05.08.2013 в 12:18 .

странное у Вас представление о "всплывающем" окне.

ну ладно, раз Вы нашли такой скрипт (командный файл),
тогда попробуйте вставить в него ключик "/s"
вот так:

наберите в командной строке
help dir
(ну или
dir /? )
почитайте, что это за команда и какие у неё есть параметры.

Спасибо ребята. Сделал такой код и всё заработало:
@echo off
chcp 1251 > nul
for /f %%i in ('dir /s /b /a') do (set /a num+=1)
echo %num% files
pause

Подскажите теперь, как сделать, что бы данные обновлялись каждую секунду. Есть какая-то команда для этого?
Дело в том, что количество файлов в папках изменяется постоянно и нужно отслеживать их количество.

И ещё подскажите пожалуйста, за что отвечает строка: chcp 1251 > nul ?

Последний раз редактировалось so1idsnake; 05.08.2013 в 13:21 .
Подскажите теперь, как сделать, что бы данные обновлялись каждую секунду.

Очень нерационально мыслите - вы хотите заставить ваш компьютер (процессор и ОС) заниматься одной задачей - каждую секунду мониторить папку!

Если дружите с программированием, тогда
сходите по ссылкам, почитайте на форуме:

ну и Stilet такую ссылку дал..

И ещё подскажите пожалуйста, за что отвечает строка: chcp 1251 > nul ?

переключить кодовую страницу на кодировку 1251 (Windows), протокол выполнения команды переключения кодовой страницы на экран не выводить (вывести его в устройство nul)

p.s. думаю, что Вам нужно поискать готовую программу. Думаю, что Вы найдёте такую, которая Вас устроит!

Последний раз редактировалось Serge_Bliznykov; 05.08.2013 в 15:50 .

Для чего это всё нужно: имеется папка, к которой открыт общий доступ. В этой папке множество пользователей хранят свои файлы и нужно контролировать количество файлов в данной папке.

Можно тогда сделать так, что бы данные BAT Файла обновлялись хотя бы раз в 5 минут?


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

ПРИМЕЧАНИЕ. Методы подсчета файлов и папок, которые мы покажем в этой статье, работают аналогично в Windows 10, Windows 8.1 и Windows 7. Для простоты мы будем использовать только скриншоты, сделанные в Windows 10.

Метод 1. Используйте Проводник для выбора файлов и папок, которые вы хотите подсчитать

Первый метод предполагает использование Проводника / Проводника Windows . Откройте «Проводник» и перейдите к папке, в которой хранятся элементы, которые вы хотите подсчитать.

Общее количество элементов (файлов и папок), хранящихся внутри, отображается в нижнем левом углу пользовательского интерфейса File Explorer.


Если вы хотите считать только некоторые из файлов или папок, хранящихся в вашей папке, выберите их все и посмотрите на нижнюю левую часть интерфейса File Explorer. Он отобразит количество выбранных элементов.


Способ 2. Используйте окно «Свойства» для рекурсивного подсчета всех файлов и папок



Метод 3. Используйте командную строку для рекурсивного подсчета всех файлов и папок


Затем, чтобы подсчитать все папки и файлы внутри родительской папки, выполните следующую команду:



Метод 4. Используйте PowerShell для подсчета всех файлов и папок


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


Если вы хотите подсчитать только папки внутри родительской папки, выполните следующую команду:


Если вы хотите знать только количество файлов, запустите эту команду:


Если вы хотите рекурсивно подсчитывать папки и/или файлы в родительской папке, добавьте параметр Recurse в предыдущие команды следующим образом:

  • Рекурсивно подсчитывать все файлы и папки: Get-ChildItem -Recurse | Measure-Object | % Get-ChildItem -Recurse | Measure-Object | %
  • Рекурсивно подсчитывать только папки: Get-ChildItem -Recurse -Directory | Measure-Object | % Get-ChildItem -Recurse -Directory | Measure-Object | %
  • Рекурсивно считать только файлы: Get-ChildItem -Recurse -File | Measure-Object | % Get-ChildItem -Recurse -File | Measure-Object | %


Заключение

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

Читайте также: