View previous topic :: View next topic |
Author |
Message |
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Sun Apr 26, 2009 14:21 Post subject: |
|
|
gegabit wrote: | Хочу знать каких файлов нет. (т.е. чтобы результат был тех файлов, которых нет) |
TC не сможет показать отсутствующие файлы.
Как вариант - создать еще один файл-список. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Koljasik
Joined: 13 Nov 2007 Posts: 59 Location: СПб
|
(Separately) Posted: Mon Apr 27, 2009 08:07 Post subject: |
|
|
Batya, спасибо, все замечательно работает! |
|
Back to top |
|
|
gegabit
Joined: 20 Oct 2006 Posts: 133 Location: дети берутся?
|
(Separately) Posted: Tue Apr 28, 2009 12:58 Post subject: |
|
|
Ну если возможно сформировать по результатам проверки отсутствующие файлы в отдельном файл-списке, было бы замечательно! _________________ Единственный недостаток водки - недостаток водки! |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Mon May 04, 2009 13:13 Post subject: |
|
|
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 |
|
Back to top |
|
|
gegabit
Joined: 20 Oct 2006 Posts: 133 Location: дети берутся?
|
(Separately) Posted: Wed May 06, 2009 11:46 Post subject: |
|
|
Огромное спасибо Батя!
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 |
_________________ Единственный недостаток водки - недостаток водки! |
|
Back to top |
|
|
Koljasik
Joined: 13 Nov 2007 Posts: 59 Location: СПб
|
(Separately) Posted: Wed May 06, 2009 16:55 Post subject: |
|
|
Batya, замечательно!
Но тут, я так понимаю, файлы-параметры уже через %commander_path% не задать? |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Wed May 06, 2009 18:33 Post subject: |
|
|
Koljasik wrote: | Но тут, я так понимаю, файлы-параметры уже через %commander_path% не задать? |
А что мешает?
Только надо учесть, что если параметры указывать в поле "Параметры" кнопки\команды, то вместо одного % надо писать дважды - %%, т.е. "%%commander_path%%". _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Koljasik
Joined: 13 Nov 2007 Posts: 59 Location: СПб
|
(Separately) Posted: Wed May 06, 2009 21:36 Post subject: |
|
|
да и с %% эффект тот же: "не является файлом-списком" |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Thu May 07, 2009 12:09 Post subject: |
|
|
Koljasik
Покажи кнопку. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Koljasik
Joined: 13 Nov 2007 Posts: 59 Location: СПб
|
(Separately) Posted: Thu May 07, 2009 22:50 Post subject: |
|
|
Вот так все работает:
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 не удается... |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Fri May 08, 2009 15:34 Post subject: |
|
|
Koljasik
Подредактировал скрипт.
Проверь, так работает? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Koljasik
Joined: 13 Nov 2007 Posts: 59 Location: СПб
|
(Separately) Posted: Fri May 08, 2009 16:01 Post subject: |
|
|
Да! Спасибо. |
|
Back to top |
|
|
Stud
Joined: 06 Apr 2010 Posts: 4
|
(Separately) Posted: Tue Apr 06, 2010 22:13 Post subject: |
|
|
Batya wrote: |
Если нужен поиск по списку, то используем Script Content Plugin.
|
Подскажите, поиск по списку работает только, если в списке указано полное имя файла с расширением.
Как сделать, чтобы поиск был без расширения?
Пример: файл- 123456-20.jpg , а в списке надо- 12345. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2220 Location: Москва, Россия
|
(Separately) Posted: Tue Apr 06, 2010 23:27 Post subject: |
|
|
Stud
А если в списке "1", то для файла "123456-20.jpg" возвращать признак "Найдено"? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
|