Выделение всех файлов с той же датой что и файл под курсором
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Автоматизация Total Commander

#1: Выделение всех файлов с той же датой что и файл под курсором Author: BommLocation: Москва PostPosted: Mon Jul 09, 2007 16:34
    —
Вопрос к скриптописателям:
Какой скрипт (если это возможно) надо написать для выделения всех файлов с той же датой, что и файл под курсором

#2:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Thu Jul 12, 2007 22:09
    —
Это возможно.
Если бы оно мне было нужно, я бы взял PowerPro (любая ссылка под постом). Алгоритм:
1. Скрипт запускается с параметрами %Р, %N.
2. Через file.getdate берется его дата.
3. Через file.listfiles составляется список.
4. Затем он просмотривается пофайлово, тем же способом анализируются даты.
5. Через win.sendmessage в QuickSearchWindow осуществляется переход к каждому из этих файлов и посылается команда на выделение.
(Мне скажут, что лучше выделить файлы последовательно - это быстрее. Я соглашусь, если обеспечена сортировка по дате. Можно вначале выдать оную команду - все зависит от задачи).
Желаю успехов.

#3:  Author: BommLocation: Москва PostPosted: Fri Jul 13, 2007 08:07
    —
Вахмурка
Спасибо, попробую посмотреть...

#4:  Author: BommLocation: Москва PostPosted: Thu Feb 14, 2013 10:52
    —
Никто не напишет скрипт без PowerPro ?
Я так и не собрался поставить его и разобраться (((

#5:  Author: sa PostPosted: Fri Feb 15, 2013 13:10
    —
Bomm
Вот, набросал что-то на базе скрипта от Volniy.
Code:
'===============================================================
' Описание:   Выделяет файлы с датой/временем файла под курсором
' Параметр:   %P%N
' Требования: Необходима регистрация WSH Helper for TC by Volniy
'===============================================================
Option Explicit
Dim List, TCS, Cnt, Buf, CurDir, FSO, Date, DateLen, TextClip
'============ Количество символов, учтываемых в дате/времени ===
DateLen = 8
'===============================================================
If WScript.Arguments.Count < 1 Then
  MsgBox "Не указан параметр %P%N", vbOKOnly + vbCritical, "Внимание!"
  WScript.Quit
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(WScript.Arguments(0)) Then
  Set TCS = CreateObject("TCScript.Helper")
  With TCS
    .LockTC True
    TextClip = .GetTextFromClip
    Date = Left(FSO.GetFile(WScript.Arguments(0)).DateLastModified, DateLen)
'    MsgBox "Дата: " & Date, vbInformation, "Информация"
    .SendCommand "cm_ClearAllFolders", True
    .SendCommand "cm_SelectAllFiles", True
    CurDir = .GetSrcPath
    .SendCommand "cm_CopyFullNamesToClip", True
    List = Split(.GetTextFromClip,vbNewLine)
    For Cnt=LBound(List) To UBound(List)
      If Left(FSO.GetFile(List(CNT)).DateLastModified, DateLen) = Date Then
         If Len(CurDir) = 0 Then
            Buf = Buf & List(Cnt) & vbNewLine
         Else
            Buf = Buf & Mid(List(Cnt), Len(CurDir) +2) & vbNewLine
         End If
      End If
    Next
    .SetTextToClip CStr(Buf)
    .SendCommand "cm_LoadSelectionFromClip", True
'    .GetSrcSelectedFiles
'    MsgBox "Выделено файлов с датой файла под курсором: " & _
'       (UBound(.GetSrcSelectedFiles) +1) & "." , vbInformation, "Завершено!"
    .SetTextToClip(TextClip)
    .LockTC False
  End With 
  Set TCS = Nothing
Else
  MsgBox "Надо указать файл!", vbOKOnly + vbExclamation,"Внимание!"
End If
Set FSO = Nothing
WScript.Quit


Last edited by sa on Fri Feb 15, 2013 15:25; edited 1 time in total

#6:  Author: FlasherLocation: Москва PostPosted: Fri Feb 15, 2013 13:34
    —
Bomm
В этом скрипте поменять параметр %N на %V, под
Code:
Set FSO = CreateObject("Scripting.FileSystemObject")
вставить
Code:
DateF = DateValue(FSO.GetFile(N).DateLastModified)

вместо
Code:
    If Len(FSO.GetFileName(F)) = Len(FSO.GetFileName(N)) Then
это:
Code:
    If FSO.FileExists(F) Then Set Fl = FSO.GetFile(F) Else Set Fl = FSO.GetFolder(F)
    If DateF = DateValue(Fl.DateLastModified) Then

#7:  Author: prog_sanLocation: Пенза PostPosted: Fri Nov 25, 2016 00:54
    —
Стоит задача: выделить в папке все файлы одного дня с текущим. Каким путем стоит решать? День не сегодняшний - поиск "не старше чем" не проходит. А как в диалог поиска дату указанного файла подставить - для меня загадка.

#8:  Author: FlasherLocation: Москва PostPosted: Fri Nov 25, 2016 01:15
    —
prog_san
Создать шаблон 'Не сегодняшние". Создать команду: em_cd: cd: %A
Quote:
TCFS2.exe /ef msg($0B,0) tem(`em_cd >Не сегодняшние`) tcm(3302) tcm(530) tcm(312) msg($0B,1) tcm(529)


Last edited by Flasher on Fri Nov 25, 2016 01:28; edited 1 time in total

#9:  Author: prog_sanLocation: Пенза PostPosted: Fri Nov 25, 2016 01:24
    —
Flasher wrote:
Создать шаблон 'Cегодняшние"

Файл имеет дату отличную от сегодняшней


Last edited by prog_san on Fri Nov 25, 2016 01:32; edited 2 times in total

#10:  Author: FlasherLocation: Москва PostPosted: Fri Nov 25, 2016 01:30
    —
Поправил название. Есть опция "Старше | 1 | дня".
А подобный пример я приводил когда-то здесь.
Можно ещё всякие переключалки окраски делать.

#11:  Author: prog_sanLocation: Пенза PostPosted: Fri Nov 25, 2016 01:32
    —
Спасибо! Понял

#12:  Author: FlasherLocation: Москва PostPosted: Fri Nov 25, 2016 01:32
    —
Блин. Я не понял, в каком месте правда?
prog_san wrote:
выделить в папке все файлы одного дня с текущим

prog_san wrote:
День не сегодняшний

#13:  Author: prog_sanLocation: Пенза PostPosted: Fri Nov 25, 2016 01:33
    —
Одного дня с текущим выделенным файлом Smile

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


Last edited by prog_san on Fri Nov 25, 2016 01:36; edited 1 time in total

#14:  Author: FlasherLocation: Москва PostPosted: Fri Nov 25, 2016 01:35
    —
А. Тогда через скрипт.

prog_san wrote:
Требовалось выделить файлы которые имеют ту же дату что и текущий файл под курсором
Зачем два раза разжёвывать неточное ТЗ? Уже всё ясно.

Вот:
Code:
'============================== VBS ==============================
' Выделение файлов/каталогов по дате файла/каталога под курсором
' Требуется dll-компонент "Script Helper ActiveX for TC by Volniy"
' Параметр: <дата создания/модификации/последнего доступа: 1/2/3>
'=================================================================
Option Explicit: Dim FSO, N, P, L, Item, X, Y, T, D, F
Sub MsgErr
  MsgBox "Укажите 1, 2 или 3 в качестве параметра!",_
  4144, " Выделение элементов" : WScript.Quit
End Sub : If WScript.Arguments.Count = 0 Then MsgErr
Set FSO = CreateObject("Scripting.FileSystemObject")
With CreateObject("TCScript.Helper")
  .Pause = 0   : N = .GetInfo("SN") : If N = ".." Then WScript.Quit
  .Wait = True : P = .GetInfo("SP") : L = Len(P) + 1 : Item = P & N
  Select Case True
    Case FSO.FileExists(Item)   X = 2 : Y = "File"
    Case FSO.FolderExists(Item) X = 3 : Y = "Folder"
    Case Else WScript.Quit
  End Select : T = .GetTextFromClip
  Select Case WScript.Arguments(0)
    Case "1" D = "Created" : Case "2" D = "LastModified"
    Case "3" D = "LastAccessed" : Case Else MsgErr
  End Select
  Execute "DateFl = DateValue(FSO.Get" & Y & "(Item).Date" & D & ")"
  .LockTC True : .SendCommand 524, True : .SendCommand 330 & X, True
  For Each F In .GetSrcSelectedFiles(1)
    Execute "If DateValue(FSO.Get" & Y & "(F).Date" &_
    D & ") = DateFl Then S = S & vbNewLine & Mid(F, L)"
  Next :.SetTextToClip(Mid(S, 3)): .SendCommand 2033, True
  .LockTC False : .SetTextToClip(T)
End With


Last edited by Flasher on Fri Nov 25, 2016 16:56; edited 1 time in total

#15:  Author: sa PostPosted: Fri Nov 25, 2016 11:47
    —
prog_san
Ещё такая тема была.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group