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

Компьютерный форум 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 | Цитировать


Цитата Nekis:
1. через хорошую программу, которую использую вместо стандартного вивера для просмотра файлов - XnView (инструменты->изменить дату/время), заменил дату создания и изменения на дату съёмки из метаданных EXIF »
Кстати, да — есть там такое .

Отправлено: 00:27, 24-01-2016 | #31



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

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


Пользователь


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

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


Цитата:
исходная папка задаётся аргументом скрипта
- как это делается?

и второй вопрос: как в скрипт ниже прописать путь к конкретной папке над которой надо выполнить работу?

Код: Выделить весь код
Dim FSO, FldN, Fls, Fl, D, DtN, FlN
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")

If WScript.Arguments.Count = 0 Then
  MsgBox "Не задано имя папки для распределения файлов по датам. ", vbExclamation, "Ошибка"
  WScript.Quit
End If

FldN = WScript.Arguments(0)
If Not FSO.FolderExists(FldN) Then
  MsgBox "Папка """ & FldN & """ не существует. ", vbExclamation, "Ошибка"
  WScript.Quit
End If

Set Fls = FSO.GetFolder(FldN).Files
For Each Fl In Fls
  D = GetDateName(Fl.DateLastModified)
  DtN = FSO.BuildPath(FldN, D)
  If Not FSO.FolderExists(DtN) Then FSO.CreateFolder DtN

  FlN = FSO.BuildPath(DtN, Fl.Name)
  If FSO.FileExists(FlN) Then
    If MsgBox("Файл """ & Fl.Name & """ уже существует в папке """ & D & """. " & vbCr & "Перезаписать?", vbQuestion + vbOKCancel, "Внимание") = vbOK Then
      FSO.DeleteFile FlN, True
      Fl.Move FlN
    End If
  Else
    Fl.Move FlN
  End If
Next

MsgBox "Скрипт завершен. ", vbInformation, "Финиш"
WScript.Quit

Private Function GetDateName(Dt)
  Dim M, D

  M = Month(Dt)
  D = Day(Dt)
  If M < 10 Then M = "0" & M
  If D < 10 Then D = "0" & D

  GetDateName = Year(Dt) & "-" & M & "-" & D
End Function

Последний раз редактировалось NLOLegion, 03-01-2020 в 15:38.


Отправлено: 07:24, 03-01-2020 | #32


Ветеран


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

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


Цитата NLOLegion:
- как это делается? »
Всё описано в двадцать шестом сообщении.

Отправлено: 10:27, 03-01-2020 | #33


Пользователь


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

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


Цитата Iska:
Всё описано в »
, я конечно извиняюсь, но там другой скрипт. И для меня это как два языка, русский и японский.

Отправлено: 15:35, 03-01-2020 | #34


Ветеран


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

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


NLOLegion, принцип тот же — просто перетаскивайте папку на скрипт/ярлык на скрипт в Проводнике. Это Вас устроит?

Отправлено: 16:01, 03-01-2020 | #35


Пользователь


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

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


Iska, да так всё работает! Отлично работает! Но в скрипте хочется сделать, а не получается. Пытался ваш файл с доработкой и без путей сравнить и от туда взять, но нифига не вышло.

Отправлено: 16:06, 03-01-2020 | #36


Ветеран


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

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


Удалите:
Код: Выделить весь код
If WScript.Arguments.Count = 0 Then
  MsgBox "Не задано имя папки для распределения файлов по датам. ", vbExclamation, "Ошибка"
  WScript.Quit
End If
Замените:
Код: Выделить весь код
FldN = WScript.Arguments(0)
на:
Код: Выделить весь код
FldN = "путь к конкретной папке над которой надо выполнить работу"

Отправлено: 16:54, 03-01-2020 | #37



Компьютерный форум 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




 
Переход