Barloy
|
|
Пакетный файл, предназначенный для подсчета файлов в каталоге, заданном определенным путем19.11.2012, 19:59. Показов 11367. Ответов 11
Метки нет Все метки)
(
Ребят помогите пожалуйста, я а этом как дерево...
Задача: Пакетный файл, предназначенный для подсчета файлов в каталоге, заданном определенным путем. Полный путь расположения и расширение подсчитываемых файлов задаются в качестве пакетных параметров. Организовать отчет с возможностью дописывания в него информации вида "Каталог <путь> содержит <количество> файлов с <расширение> расширением" |
19.11.2012, 19:59 | |
Ответы с готовыми решениями:
11
Пакетный файл, предназначенный для перемещения файлов с определенным расширением Создать пакетный файл, предназначенный для перемещения файлов с определенным расширением из каталога-источника Пакетный файл, предназначенный для организации процесса поиска и копирования файлов с определенным расширением |
1780 / 762 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
|
|||||||||||
21.11.2012, 09:44 | |||||||||||
1. Классический вариант - непосредственный подсчёт файлов
0
|
Barloy
|
||||||
22.11.2012, 17:17 | ||||||
Вот так еще можно. Всем большое спасибо! |
![]() 226 / 211 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
||||||
09.02.2016, 20:45 | ||||||
Объясните этот код пожалуйста.Не понимаю,как работает счетчик.
Никто не знает?Я правда не могу понять,как он считает файлы в каталоге.
0
|
![]() ![]() ![]() |
|
09.02.2016, 20:55 | |
for %%A in (*) do
- перечисление файлов в текущем каталоге Set /A n+=1 Инкремент общего количества Set /A %%~xA.+=1 Инкремент кол-ва по конкретному расширению имени (%%~xA - раскрывается в расширение) @set . Выводит на экран все переменные, имя которых начинается на символ "точка".
0
|
![]() 226 / 211 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
09.02.2016, 22:49 | |
Так.
Инкремент это операция увеличивающая переменную на один.То есть код выглядит как,беремем файл в каталоге ,посещаем его в переменную %%А,а дальше у меня ступор.Потому,что я не понимаю,что происходит дальше. Добавлено через 6 минут Сейчас попробую объяснить,что мне не понятно.Допустим заменяем код со счётчиком на этот код: ... do set b=%%A&echo !b! .То есть берём файл из каталога,помещаем его в переменную %%А ,затем файл в переменной %%А помещаем в переменную %b% и выводим её на экран с помощью команды echo .Так вот,что происходит в Вашем коде ,я не понимаю.
0
|
![]() ![]() ![]() |
|
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
|
![]() 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
|
![]() ![]() ![]() |
|||||||||
10.02.2016, 23:23 | |||||||||
В Windows Batch нет такого понятия, как объявление переменных. В данном случае на 1-й итерации - это неявная инициализация со значением 0 с присвоением значения +1. В итоге, можно сделать даже тройное раскрытие переменной - т.е. получить значение переменной, имя которой является значением 2-й переменной, имя которой является значением 3-й переменной =), и в результате вот этим последним значением воспользоваться как именем новой переменной, которой присвоить какое-то еще значение. И все это записать в виде одной лексемы. Нечто похожее можно проделывать и в других языках, может, и не нативно. Например, словарь (хеш-таблицы). Простейший пример - из состава библиотеки scrrun.dll (com-объект Scripting.Dictionary). Там можно присвоить значение элементу словаря, дав ему произвольное имя. При этом само имя можно вполне подставить из значения какой-то другой переменной:
1
|
![]() 226 / 211 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
11.02.2016, 12:27 | |
Ого.Это уже наверно из дополнительной литературы.Такое в обычных справочниках для нубов я не нашел)
0
|
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, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
|