Надо найти 40 файлов и удалить!
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, ... 9, 10, 11  Next  :| |:
Total Commander -> Автоматизация Total Commander

#16:  Author: BatyaLocation: Москва, Россия PostPosted: Sun Apr 26, 2009 14:21
    —
gegabit wrote:
Хочу знать каких файлов нет. (т.е. чтобы результат был тех файлов, которых нет)

TC не сможет показать отсутствующие файлы.
Как вариант - создать еще один файл-список.

#17:  Author: KoljasikLocation: СПб PostPosted: Mon Apr 27, 2009 08:07
    —
Batya, спасибо, все замечательно работает!

#18:  Author: gegabitLocation: дети берутся? PostPosted: Tue Apr 28, 2009 12:58
    —
Ну если возможно сформировать по результатам проверки отсутствующие файлы в отдельном файл-списке, было бы замечательно!

#19:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Sat May 02, 2009 02:21
    —
Раз уж про автоматизацию заговорили, перенёс.

#20:  Author: BatyaLocation: Москва, Россия PostPosted: Mon May 04, 2009 13:13
    —
gegabit wrote:
Ну если возможно сформировать по результатам проверки отсутствующие файлы в отдельном файл-списке, было бы замечательно!
Code:
'=========================================================================
' Проверка существования файлов\папок, представленных в файле-списке.
' Результат действия скрипта - формируемся итоговый файл-список
'   с отсутствующими файлами\папками
'
' Параметры:
' {исходный файл-список} {итоговый файл-список}
'
' Автор - Batya
'=========================================================================
Option Explicit
'======== Изменяемые параметры ===========================================
Const FolderCheck = True  'Проверять ли папки
Const FileCheck   = True  'Проверять ли файлы
Const Existing    = False 'Что помещать в итоговый файл
'=========================================================================
Dim Mess, FSO, WSH, FF1, FF2, F, TFL, List
SetMess
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
CheckParam

For Each F In Split(FSO.OpenTextFile(FF1).ReadAll, vbNewLine)
  If F <> "" Then
    F = GetPath(F)
    If ExistsCheck(F) Then List = List & vbNewLine & F
  End If
Next
If List <> "" Then List = Mid(List, Len(vbNewLine) + 1)
On Error Resume Next
Set TFL = FSO.CreateTextFile(FF2, True)
If Err.Number <> 0 Then
  MessBox Mess(5) & vbNewLine & Err.Description, 1
  Err.Clear
  Quit
End If
TFL.Write List
If Err.Number <> 0 Then
  MessBox Mess(5) & vbNewLine & Err.Description, 1
  Err.Clear
  Quit
End If
On Error GoTo 0

MessBox Mess(4), 3
Quit

Sub SetMess
  Set Mess = CreateObject("Scripting.Dictionary")
  With Mess
    .Add 0,  "Проверка существования файлов\папок"
    .Add 1,  "Не указаны параметры!"
    .Add 2,  "Первый параметр не является файлом-списком!"
    .Add 3,  "Не указан итоговый файл-список!"
    .Add 4,  "Операция завершена."
    .Add 5,  "Операция прервана по причине ошибки:"
  End With
End Sub

Sub CheckParam
  If WScript.Arguments.Count = 0 Then
    MessBox Mess(1), 1
    Quit
  End If
  FF1 = GetPath(WScript.Arguments(0))
  If Not FSO.FileExists(FF1) Then
    MessBox Mess(2), 1
    Quit
  End If
  If WScript.Arguments.Count = 1 Then
    MessBox Mess(3), 1
    Quit
  End If
  FF2 = GetPath(WScript.Arguments(1))
End Sub

Function GetPath(pPath)
  GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
End Function

Function ExistsCheck(pPath)
  If FolderCheck And (Not FSO.FileExists(pPath)) And (Not (Existing Xor FSO.FolderExists(pPath))) Then
    ExistsCheck = True
    Exit Function
  End If
  If FileCheck And (Not FSO.FolderExists(pPath)) And (Not (Existing Xor FSO.FileExists(pPath))) Then
    ExistsCheck = True
    Exit Function
  End If
  ExistsCheck = False
End Function

Function MessBox(pMess, pMode)
  Dim lIcon
  Select Case pMode
    Case 1 lIcon = vbCritical    + vbOKOnly
    Case 2 lIcon = vbExclamation + vbOKOnly
    Case 3 lIcon = vbInformation + vbOKOnly
  End Select
  MessBox = MsgBox(pMess, lIcon, Mess(0))
End Function

Sub Quit
  Set Mess = Nothing
  Set WSH  = Nothing
  Set TFL  = Nothing
  Set FSO  = Nothing
  WScript.Quit
End Sub


Last edited by Batya on Fri May 08, 2009 15:33; edited 1 time in total

#21:  Author: gegabitLocation: дети берутся? PostPosted: Wed May 06, 2009 11:46
    —
Огромное спасибо Батя!
6901 файл просканено, 125 не было... =)

Кнопка для тотала:
Code:
TOTALCMD#BAR#DATA
c:\111\script.vbs
"C:\111\FileList.txt" "C:\111\nofiles.txt"
C:\Program Files\Total Commander\TOTALCMD.EXE,21
Поиск несуществующих файлов
c:\
-1
-1

#22:  Author: KoljasikLocation: СПб PostPosted: Wed May 06, 2009 16:55
    —
Batya, замечательно!
Но тут, я так понимаю, файлы-параметры уже через %commander_path% не задать?

#23:  Author: BatyaLocation: Москва, Россия PostPosted: Wed May 06, 2009 18:33
    —
Koljasik wrote:
Но тут, я так понимаю, файлы-параметры уже через %commander_path% не задать?

А что мешает?
Только надо учесть, что если параметры указывать в поле "Параметры" кнопки\команды, то вместо одного % надо писать дважды - %%, т.е. "%%commander_path%%".

#24:  Author: KoljasikLocation: СПб PostPosted: Wed May 06, 2009 21:36
    —
да и с %% эффект тот же: "не является файлом-списком"

#25:  Author: BatyaLocation: Москва, Россия PostPosted: Thu May 07, 2009 12:09
    —
Koljasik
Покажи кнопку.

#26:  Author: KoljasikLocation: СПб PostPosted: Thu May 07, 2009 22:50
    —
Вот так все работает:
Code:

TOTALCMD#BAR#DATA
%commander_path%\Plugins\scripts\find.vbs
c:\totalcmd\temp\FileList.txt c:\totalcmd\temp\nofiles.txt
%commander_path%\TOTALCMD.EXE,18
Поиск несуществующих файлов
%commander_path%\Plugins\scripts\

-1


Заменить c:\totalcmd не удается...

#27:  Author: BatyaLocation: Москва, Россия PostPosted: Fri May 08, 2009 15:34
    —
Koljasik
Подредактировал скрипт.
Проверь, так работает?

#28:  Author: KoljasikLocation: СПб PostPosted: Fri May 08, 2009 16:01
    —
Да! Спасибо.

#29:  Author: Stud PostPosted: Tue Apr 06, 2010 22:13
    —
Batya wrote:

Если нужен поиск по списку, то используем Script Content Plugin.


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

Пример: файл- 123456-20.jpg , а в списке надо- 12345.

#30:  Author: BatyaLocation: Москва, Россия PostPosted: Tue Apr 06, 2010 23:27
    —
Stud
А если в списке "1", то для файла "123456-20.jpg" возвращать признак "Найдено"?



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


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

Goto page Previous  1, 2, 3, ... 9, 10, 11  Next  :| |:
Page 2 of 11

Powered by phpBB © 2001, 2005 phpBB Group