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

Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания)

Ответить
Настройки темы
Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания)

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


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

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


Подскажите программку (или скрипт какой-то), которая может определить дату создания файла и судя по ней переместить файл в папку с названием "Дата создания файла".

Например:
файл1.jpg - дата создания 3.05.2007

Нужно создать папку 03.05.2007 (или 2007.05.03) и скопировать туда "файл1.jpg".

Пробовал искать по Инету - честно слово, ничего не нашел. А согласитесь, такая программа полезная. У меня фотки с камеры (Canon) когда сливаются на комп сразу по папкам сортируются. А вот на мобильном все файлы в одну папку скидываются и когда на комп перекинешь - то такой бардак

Может тут есть программисты, для которых это не тяжело сделать А то я только очень начинающий.

Отправлено: 22:10, 28-06-2007

 

Ветеран


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

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


cifrovichek, реально. Откройте командную строку и, перейдя в нужную папку, исполните следующий код:
Код: Выделить весь код
for %i in ("E:\Песочница\0088\*.jpg") do @(set sName=%~nxi & (if not exist "!sName:~0,4!" md "!sName:~0,4!") & move "%i" "!sName:~0,4!\")
где: «E:\Песочница\0088\*.jpg» — путь и маска файлов к Вашей «папка с большим кол-вом файлов вида».

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

Отправлено: 14:32, 30-10-2011 | #11



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

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


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


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

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


Цитата Iska:
cifrovichek, реально. Откройте командную строку и, перейдя в нужную папку, исполните следующий код: »
Что -то не получается.
Пишет "неверно задано имя папки. Синтаксическая ошибка в имени файла, имени папки или метке тома"
В чём может быть проблема?

Отправлено: 20:00, 30-10-2011 | #12


Ветеран


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

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


cifrovichek, надеюсь, «E:\Песочница\0088\*.jpg» Вы поменяли на своё? Все файлы «*.jpg» действительно имеют четырёхсимвольную общую часть в именах?

Последний раз редактировалось Iska, 31-10-2011 в 06:48. Причина: Вопросу придан более конкретный смысл


Отправлено: 06:39, 31-10-2011 | #13


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


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

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


Цитата Iska:
for %i in ("E:\Песочница\0088\*.jpg") do @(set sName=%~nxi & (if not exist "!sName:~0,4!" md "!sName:~0,4!") & move "%i" "!sName:~0,4!\") »
Путь само собой поменял, символов не 4, а 7(4 приводил для примера).
Только что попробовал провести аналогичное действие, но вместо "4" в код поставил "7" - всё повторилось.

Отправлено: 12:28, 31-10-2011 | #14


Ветеран


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

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


cifrovichek, в папке «E:\Песочница\0088» я создал файлы:
Код: Выделить весь код
000ffaa-1.jpg
000ffaa-2.jpg
000ffaa-3.jpg
000ggaa-1.jpg
000ggaa-2.jpg
000ggaa-3.jpg
читать дальше »
Код: Выделить весь код
╔═════════════════════ E:\Песочница\0088 ╤══════╤════════╤═════╗
║и                 Имя                   │Размер│  Дата  │Время║
║⌂..                                     │ Вверх│01.11.11│02:31║
║ 000ffaa-1                           jpg│     0│01.11.11│02:29║
║ 000ffaa-2                           jpg│     0│01.11.11│02:29║
║ 000ffaa-3                           jpg│     0│01.11.11│02:29║
║ 000ggaa-1                           jpg│     0│01.11.11│02:29║
║ 000ggaa-2                           jpg│     0│01.11.11│02:29║
║ 000ggaa-3                           jpg│     0│01.11.11│02:29║
║                                        │      │        │     ║
…

В командной строке, сделав текущим каталогом «E:\Песочница\0089», выполнил команду:
Код: Выделить весь код
for %i in ("E:\Песочница\0088\*.jpg") do @(set sName=%~nxi & (if not exist "!sName:~0,7!" md "!sName:~0,7!") & move "%i" "!sName:~0,7!\")
Получил результат:
читать дальше »
Код: Выделить весь код
╔═════════════════════ E:\Песочница\0089 ╤══════╤════════╤═════╗
║и                 Имя                   │Размер│  Дата  │Время║
║⌂..                                     │ Вверх│01.11.11│02:35║
║├000ffaa                                │ Папка│01.11.11│02:35║
║├000ggaa                                │ Папка│01.11.11│02:35║
║                                        │      │        │     ║
…
Код: Выделить весь код
╔═════════════════ E:\Песочница\0089\000ffaa ═══╤════════╤═════╗
║и                 Имя                   │Размер│  Дата  │Время║
║⌂..                                     │ Вверх│01.11.11│02:35║
║ 000ffaa-1                           jpg│     0│01.11.11│02:29║
║ 000ffaa-2                           jpg│     0│01.11.11│02:29║
║ 000ffaa-3                           jpg│     0│01.11.11│02:29║
║                                        │      │        │     ║
…
Код: Выделить весь код
╔═════════════════ E:\Песочница\0089\000ggaa ═══╤════════╤═════╗
║и                 Имя                   │Размер│  Дата  │Время║
║⌂..                                     │ Вверх│01.11.11│02:35║
║ 000ggaa-1                           jpg│     0│01.11.11│02:29║
║ 000ggaa-2                           jpg│     0│01.11.11│02:29║
║ 000ggaa-3                           jpg│     0│01.11.11│02:29║
║                                        │      │        │     ║
…

А как делали Вы?

Отправлено: 03:42, 01-11-2011 | #15


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


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

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


Iska, и я делаю так же. Посмотрите пожалуйста скрины, может я чего-то не замечаю?









Отправлено: 16:04, 01-11-2011 | #16


Ветеран


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

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


cifrovichek, научитесь, пожалуйста, снимать копию текста с содержимого окна консоли. Желания вручную набирать текст по скриншоту мало. Я понимаю, что есть моменты, когда важен именно скриншот, но в данном случае это не так.

Я проверил — у меня на Ваших файлах и путях работает, как и заявлено.

Есть предположение, что у нас с Вами разница в значении «enabledelayedexpansion» командного процессора. Я уже много лет меняю умолчальное значение…
читать дальше »
…для текущего пользователя:
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"DelayedExpansion"=dword:00000001
или в целом:
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor]
"DelayedExpansion"=dword:00000001

Попробуйте запустить командный процессор с параметром «/V:ON»:
Код: Выделить весь код
cmd.exe /v:on
а затем проделать те же манипуляции, что и ранее.
читать дальше »
Цитата cmd.exe /?:

/V:ON Разрешение отложенного расширения переменных среды с применением символа '!' в качестве разделителя. Например, /V:ON разрешает использовать !var! в качестве расширения переменной var во время выполнения. Синтаксис var служит для расширения переменных при вводе, что приводит к совсем другим результатам внутри цикла FOR.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:04, 01-11-2011 | #17


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


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

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


Iska, спасибо большое! Теперь всё получилось!

Отправлено: 02:05, 02-11-2011 | #18


Ветеран


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

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


Цитата cifrovichek:
Теперь всё получилось! »
cifrovichek, это хорошо. Значит, мне только остаётся принести Вам свои извинения — я должен был бы помнить, что мои настройки командного процессора отличаются от принятых по умолчанию.

Отправлено: 03:47, 02-11-2011 | #19


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


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

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


День добрый, у меня подобная проблемка, как описана выше:
Цитата cifrovichek:
Есть папка с большим кол-вом файлов вида:
ffaa-1.jpg
ffaa-2.jpg
ffaa-3.jpg
ggaa-1.jpg
ggaa-2.jpg
ggaa-3.jpg
Нужно чтобы скрипт создал папку "ffaa" и запихнул в неё файлы ffaa-1.jpg, ffaa-2.jpg и ffaa-3.jpg.
Аналогично со следующей группой файлов. »
Только вот имена файлов до разделителя "-" имеют от 1 до 6 символов, но рассортировать также надо. Скрипт выложенный выше корректно отрабатывает только на фиксированном количестве символов. Как можно сделать такую сортировку средствами windows?

Отправлено: 11:16, 03-06-2015 | #20



Компьютерный форум OSzone.net » Сфера Microsoft » Программное обеспечение Windows » Прочие - [решено] Сортирование файлов по папкам (копирование по дате создания)

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Защита папок и файлов паролем - ограничение доступа к файлам и папкам WChek Программное обеспечение Windows 18 22-09-2010 13:31
CMD/BAT - [решено] Копирование самого позднего по дате создания каталога. SANIOK_AV Скриптовые языки администрирования Windows 2 04-12-2009 17:29
VBS/WSH/JS - [решено] VBS/WSH. Сортировка файлов по дате. rancid Скриптовые языки администрирования Windows 3 23-07-2009 06:38
Доступ - [решено] Копирование файлов из XP в Vista cleverkid Microsoft Windows Vista 2 01-11-2008 11:19
[решено] Копирование файлов при загрузке ОС Coutty Microsoft Windows 2000/XP 9 02-05-2007 19:25




 
Переход