Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сортировка файлов в каталоге с подкаталогами

Ответить
Настройки темы
CMD/BAT - Сортировка файлов в каталоге с подкаталогами

Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: ChevConnor
Дата: 26-10-2018
Прошу помощи! У меня есть каталог ( папка ) с подкаталогами ( папками ). В каталоге есть файлы скажем .txt .doc .pdf
Мне нужно отсортировать их по расширению и распределить в отдельном каталоге с подкаталогами названия которых соответствуют расширению. Cортировку выполнить копированием. При этом чтобы после сортировки в файле .txt указывалась дата\время последних изменений
В том что я написал происходит следующее - файлы сортируются только из основного каталога, а из подкаталогов не затрагиваются, и каждый раз перезаписывает файл с временем\датой последних изменений.

@echo off
setlocal enabledelayedexpansion
xcopy *.txt sort\txt
DIR > sort\txt.txt
xcopy *.doc sort\doc
DIR > sort\doc.txt
pause

Отправлено: 19:37, 26-10-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Цитата ChevConnor:
Cортировку выполнить копированием. »
Это новое слово в алгоритмизации. Мне лично — непонятное.

Цитата ChevConnor:
При этом чтобы после сортировки в файле .txt »
Каком файле?

Отправлено: 20:02, 26-10-2018 | #2



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

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


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня есть папка, в ней файлы и папки (формата .txt .pdf .doc). Мне нужен сценарий, способный рассортировать файлы (и те что во вложенных каталогах) по расширению, в отдельном каталоге (папке) с подкаталогами, соответствующие расширению. Ну и чтобы после выполнения сценария создавался файл-отчет.txt c датой\временем последних изменений.

По тому "сценарию" (его подобию скорее) у меня сортируются файлы в каталоге в котором находится батник, а подкаталоги не затрагиваются. Дату\время последних изменений записывает в отдельном файле, это вроде получилось.

Отправлено: 20:12, 26-10-2018 | #3


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата ChevConnor:
c датой\временем последних изменений »
изменений чего и где?
Цитата ChevConnor:
Дату\время последних изменений записывает в отдельном файле, это вроде получилось »
если речь об этом
Цитата ChevConnor:
DIR > sort\txt.txt »
то там информации намного больше чем требуется
а вообще не судьба открыть справку: dir /? и почитать как ею пользоваться?

Отправлено: 20:31, 26-10-2018 | #4


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 20:35, 26-10-2018 | #5


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата ChevConnor:
Понимал бы я »
Цитата ChevConnor:
проблема в этом »
за такими банальными вещами лезть на форум может подтолкнуть только необузданная лень при этом еще и игнорирование следовать советам.

Отправлено: 20:38, 26-10-2018 | #6


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Увы, 2й день сижу, я в этом деле, не как вы, а новичок можно сказать, плоховато у меня с написанием, вот и решил попросить помощи у знающих людей, а советов, кроме как банально открыть dir /? как то и нету, одни подколы

Отправлено: 20:42, 26-10-2018 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


ChevConnor, Вы не ответили на вопрос: что должен делать алгоритм, когда ему в разных каталогах встретятся одноимённые файлы? Например, в каталоге …\Моя папка\Моя новая папка ему встретился файл Мой любимый файл.doc, он его скопировал/переместил в каталог …\Моя любимая папка для сортировки\DOC под тем же именем Мой любимый файл.doc. Затем он встречает в каталоге …\Моя папка\Моя новая папка 2 файл с ровно тем же именем — Мой любимый файл.doc. Что должен сделать алгоритм?

Цитата ChevConnor:
Понимал бы я как с подкаталогов скопировать файлы, я бы не создавал тему, проблема в этом у меня заключается »
Far Manager, Alt-F7, Enter, Панель, (стать на первый найденный файл, Ctrl-GrayPlus, F6, End, {txt|pdf|doc}\, Enter) повторить три раза. Вручную это делается за пару минут безо всяких скриптов.

Ваша проблема в том, что Вы не можете сами для себя точно сформулировать задачу.

Отправлено: 20:45, 26-10-2018 | #8


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Cоздать копию думаю. Просто файлов много и там названия неповторяющиеся (Pm1024zm.txt Pm1025zm.txt и т.д) не задумывался над этим

Отправлено: 20:50, 26-10-2018 | #9


Ветеран


Contributor


Сообщения: 2706
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Еcли расширения известны.
C сохранением структуры папок+создаются файлы ^^^^^^.log в каждой выходной папке по расширению
Код: Выделить весь код
@Echo Off
	Set "BoxIn=D:\Мой контент\Книги"
	Set "BoxOut=Z:\Box_Out\Книги"
	Set "Ext=fb2 epub txt pdf txt"

	For %%e IN (%Ext%) DO (
		Md "%BoxOut%.%%e" 2>nul
		>"%BoxOut%.%%e\^^^^^^.log" (For /F "usebackq delims=" %%i IN (`Xcopy /Y /S "%BoxIn%\*.%%e" "%BoxOut%.%%e\"`) DO (
			If Exist "%%i" Echo %%~ti "%%i"
		))
	)
GoTo :Eof
Еcли расширения известны.
Без сохранениея структуры папок+создаются файлы ^^^^^^.log в каждой выходной папке по расширению
Код: Выделить весь код
@Echo Off
	Set "BoxIn=D:\Мой контент\Книги"
	Set "BoxOut=Z:\Box_Out\Книги"
	Set "Ext=fb2 epub txt pdf txt"

	For %%e IN (%Ext%) DO (
		Md "%BoxOut%.%%e" 2>nul
		>"%BoxOut%.%%e\^^^^^^.log" (For /F "usebackq delims=" %%i IN (`Xcopy /L /S "%BoxIn%\*.%%e" "%Tmp%\"`) DO (
			If Exist "%%i" (Copy "%%i" "%BoxOut%.%%e\" >nul &Echo %%~ti "%%i")
		))
	)
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 26-10-2018 в 21:14.


Отправлено: 20:54, 26-10-2018 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сортировка файлов в каталоге с подкаталогами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] получение списка имён файлов без имен папок (с подкаталогами) shadowbat Скриптовые языки администрирования Windows 6 20-12-2015 19:29
Любой язык - [решено] Архивирование файлов в каталоге Tonny_Bennet Скриптовые языки администрирования Windows 53 11-01-2015 13:11
CMD/BAT - Переименование файлов в каталоге flower Скриптовые языки администрирования Windows 2 28-11-2013 15:00
VBS/WSH/JS - Мониторинг файлов в каталоге ugol_divana Скриптовые языки администрирования Windows 1 03-08-2013 17:15
Любой язык - [решено] Распределение файлов в каталоге Тишина Скриптовые языки администрирования Windows 2 26-04-2013 17:09




 
Переход