Barloy

Пакетный файл, предназначенный для подсчета файлов в каталоге, заданном определенным путем

19.11.2012, 19:59. Показов 11367. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят помогите пожалуйста, я а этом как дерево...

Задача:

Пакетный файл, предназначенный для подсчета файлов в каталоге, заданном определенным путем. Полный путь расположения и расширение подсчитываемых файлов задаются в качестве пакетных параметров. Организовать отчет с возможностью дописывания в него информации вида "Каталог <путь> содержит <количество> файлов с <расширение> расширением"
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2012, 19:59
Ответы с готовыми решениями:

Пакетный файл, предназначенный для перемещения файлов с определенным расширением
Пакетный файл, предназначенный для перемещения файлов с определенным расширением из каталога-источника в заданное место назначения....

Создать пакетный файл, предназначенный для перемещения файлов с определенным расширением из каталога-источника
Порядок выполнения: I. Создайте новый пакетный файл, воспользовавшись любым текстовым редактором. Имя пакетного файла выберете...

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

11
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
21.11.2012, 00:23

Bash
1
2
3
@for %%A in (*) do @(Set /A n+=1& Set /A %%~xA.+=1)
@Echo Всего файлов: %n%
@set .
2
1780 / 762 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
21.11.2012, 09:44
1. Классический вариант - непосредственный подсчёт файлов
Bash
1
2
3
4
5
6
7
@ECHO OFF
setlocal enabledelayedexpansion
for /f %%a in ('dir /b /a:-d "d:\2\Updates\*"') do (
set /a n+=1
)
Echo Количество файлов - !n!
pause
2. Количество файлов берётся из команды dir
Bash
1
2
3
4
5
6
7
8
@ECHO OFF
setlocal enabledelayedexpansion
 
For /F "skip=4 tokens=1-3" %%a IN ('Dir /-C "d:\2\Updates" 2^>nul') Do (
    If "%%b"=="файлов" (Set n=%%a)
      )
Echo Количество файлов - !n!
pause
0
887 / 189 / 16
Регистрация: 18.07.2011
Сообщений: 260
21.11.2012, 13:07
Bash
1
dir /b /a:-d "d:\2\Updates\*" | find /v /c ""
2
Barloy
22.11.2012, 17:17
Bash
1
2
3
4
5
6
7
8
@echo off
set /p a=Papka
set /p b=Rasshirenie
set /a kolichestvo=0
for %%L in (%a%\*%b%) do (set /a kolichestvo+=1)
set kolichestvo
pause
Echo In the insert Papka %a%, Naideno %kolichestvo% files. Rasshirenie %b% > C:\doklad.txt

Вот так еще можно.
Всем большое спасибо!
 Аватар для ZoOoO
226 / 211 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
09.02.2016, 20:45
Объясните этот код пожалуйста.Не понимаю,как работает счетчик.
Windows Batch file
1
2
for %%A in (*) do (Set /A n+=1& Set /A %%~xA.+=1)
Echo Всего файлов: %n%
Добавлено через 5 часов 37 минут
Никто не знает?Я правда не могу понять,как он считает файлы в каталоге.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.02.2016, 20:55
for %%A in (*) do
- перечисление файлов в текущем каталоге

Set /A n+=1
Инкремент общего количества

Set /A %%~xA.+=1
Инкремент кол-ва по конкретному расширению имени (%%~xA - раскрывается в расширение)

@set .
Выводит на экран все переменные, имя которых начинается на символ "точка".
0
 Аватар для ZoOoO
226 / 211 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
09.02.2016, 22:49
Так.
Инкремент это операция увеличивающая переменную на один.То есть код выглядит как,беремем файл в каталоге ,посещаем его в переменную %%А,а дальше у меня ступор.Потому,что я не понимаю,что происходит дальше.

Добавлено через 6 минут

Сейчас попробую объяснить,что мне не понятно.Допустим заменяем код со счётчиком на этот код:
... do set b=%%A&echo !b! .То есть берём файл из каталога,помещаем его в переменную %%А ,затем файл в переменной %%А помещаем в переменную %b% и выводим её на экран с помощью команды echo .Так вот,что происходит в Вашем коде ,я не понимаю.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.02.2016, 23:38
На псевдокоде:

1. Перечисляем файлы.
2. Итерация № 1. Например, в переменную цикла %%A - пападает имя первого файла, допустим, file.txt
3. Увеличиваем число в переменной n на +1 (по-умолчанию, при работе с переменными, как числовыми (ключик /A), там записано число 0).
4. %%~xA - Модификатор ~x обозначает отсечение от имени файла только расширения с точкой. (детальнее: читайте справку по for /?
Т.о. %%~xA заменяется на .txt
5. set /a .txt+=1
Счетчик в переменной .txt увеличивается на +1
6. Повтор цикла
7 .Вывод на экран всех переменных с точкой в начале: set .
или числа файлов с конкретным расширением имени: echo %.txt%

Так понятно?
0
 Аватар для ZoOoO
226 / 211 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
10.02.2016, 21:41
set n+=1 задаем переменную %n%,которая будет увеличиваться каждый раз на один с каждым прошедшим циклом.
set %%~xA+=1 этот код задаёт переменную под названием .txt,которая увеличивается на один с каждым прошедшим циклом(берётся файл 123.txt ,помещается в %%А ,затем от полного названия файла берётся расширение и помещается в переменную .txt )Меня смущает это строка.Я привык видить присвоение переменной ,как set var=1 ,а не ,как указали Вы.Получается этот код создаёт переменную из переменной цыкла.Странно даже как то)))
А разве переменные цыкла не уничтожаются после завершения цыкла?Поидее код echo %n% стоит после цыкла.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18026 / 7729 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.02.2016, 23:23
Цитата Сообщение от ZoOoO Посмотреть сообщение
Получается этот код создаёт переменную из переменной цыкла.Странно даже как то)))
Все верно. Создает переменную процесса из значения в переменной цикла.
В Windows Batch нет такого понятия, как объявление переменных.
В данном случае на 1-й итерации - это неявная инициализация со значением 0 с присвоением значения +1.

Цитата Сообщение от ZoOoO Посмотреть сообщение
А разве переменные цыкла не уничтожаются после завершения цыкла?
Да. Но переменная цикла - это %%A, а переменная процесса сохраняется - это %n%.

Цитата Сообщение от ZoOoO Посмотреть сообщение
Я привык видить присвоение переменной ,как set var=1 ,а не ,как указали Вы.
Существуют правила и последовательность раскрытия переменных.
В итоге, можно сделать даже тройное раскрытие переменной - т.е. получить значение переменной, имя которой является значением 2-й переменной, имя которой является значением 3-й переменной =), и в результате вот этим последним значением воспользоваться как именем новой переменной, которой присвоить какое-то еще значение. И все это записать в виде одной лексемы.
Нечто похожее можно проделывать и в других языках, может, и не нативно.
Например, словарь (хеш-таблицы). Простейший пример - из состава библиотеки scrrun.dll (com-объект Scripting.Dictionary).
Там можно присвоить значение элементу словаря, дав ему произвольное имя. При этом само имя можно вполне подставить из значения какой-то другой переменной:

JavaScript
1
2
3
var oDict = new ActiveXObject('Scripting.Dictionary');
var myvar = 'name';
oDict.Add (myvar, 'value');
1
 Аватар для ZoOoO
226 / 211 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
11.02.2016, 12:27
Ого.Это уже наверно из дополнительной литературы.Такое в обычных справочниках для нубов я не нашел)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2016, 12:27
Помогаю со студенческими работами здесь

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

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

Пакетный файл, который будет проверять наличие в указанном в качестве первого параметра каталоге файлов
Требуется написать пакетный файл, который будет проверять наличие в указанном в качестве первого параметра каталоге файлов. Если файлы там...

Рекурсивная функция для подсчета файлов в данном каталоге
Такое дело, нужно написать программу для подсчета файла в данном каталоге и если в этом каталоге есть подкаталоги , то в них тоже считать...

В заданном каталоге определить, какие имена файлов есть жесткими ссылками на тот же файл
В заданном каталоге определить, какие имена файлов есть жесткими ссылками на тот же файл. Заранеей спасибо)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Пишем адаптер для локального хранилища S3 на C#
stackOverflow 16.07.2025
Разработка современных приложений часто требует интеграции с объектными хранилищами, и Amazon S3 стал де-факто стандартом в этой области. Однако работа с облачными сервисами в процессе разработки. . .
Старые замки
kumehtar 16.07.2025
Смотрел тут фото, попались пара старых замков. И сразу бросилось в глаза из отличие. Например: Замок Бистон, в англии. Разрушенное сооружение. Но - не испорченное людьми, по крайней мере - на. . .
Java и Eclipse Store: Сверхбыстрые приложения с In-Memory DB
Javaican 15.07.2025
Eclipse Store — это микро-движок персистентности для Java, который позволяет хранить и извлекать нативные Java-объекты без необходимости преобразования данных или использования объектно-реляционного. . .
EmBitz, создание проекта, отладка, прошивка
locm 15.07.2025
Создание проекта для Blue Pill (STM32F103C8T6) в EmBitz 2. 30, написания кода blink, запуск отладки в ОЗУ, заливка релизной прошивки во flash используя ST-Link и др. . . .
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru