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

#1: Надо найти 40 файлов и удалить! Author: activeman PostPosted: Tue Jun 03, 2008 13:46
    —
Задача такая:

Есть 3 раздела, на них в разных папках размещены фильмы.
Надо найти определоённые из списка, 40шт, и снести, бо они дубли.

КАК это всё сделать!?

Вопрос оч. для меня важный, т.к. поиск по списку - это то, чем я давно мечтаю овладеть!

 !  Моторокер:
Форум советы – для советов.
Для вопросов есть Общий форум.

#2:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Tue Jun 03, 2008 15:41
    —
Total Commander умеет искать дубликаты как по содержимому, так и по названию.

Для поиска по списку можно попробовать преобразовать его в формат:
*первоекино* *второекино*
и искать файлы так.

#3:  Author: swr PostPosted: Tue Jun 03, 2008 18:14
    —
Вообще то очень интерестная ситуация, неужели никто так и не написал скрипт для поиска по списку? Судя по всему нет, здесь ещё где то темка про это была "Удаление mp3 по черному списку исполнителей" называлась, но там тоже вариант не идеальный, в общем тухляк Sad, тоже хотелось бы такую фичу.

#4:  Author: gegabitLocation: дети берутся? PostPosted: Wed Jun 04, 2008 12:10
    —
CTRL+B, весь список, смотри дубли и стирай.

#5:  Author: BatyaLocation: Москва, Россия PostPosted: Wed Jun 04, 2008 14:36
    —
Вообщем, надо "отделить мух от котлет".
Если нужно искать дубликаты - это одно. См. советы выше.

Если нужен поиск по списку, то используем Script Content Plugin.
Содержимое script.ini:
Code:
[Script]
Section=General

[General]
LongName=0
ParseDirs=1
Script=General.vbs

В каталоге плагина должен лежать файл General.vbs с содержимым:
Code:
'============================
' Колонка Result будет возвращать признак наличия файла\каталога в указанном файле-списке:
'   0 - файл\каталог НЕ найден; 1 - файл\каталог найден
'=== Изменяемые параметры ===
Const FileList = "C:\FileList.txt" 'Файл-список
'============================

Dim FSO, List, QuitFlag
Const ForReading = 1
Set FSO = CreateObject("Scripting.FileSystemObject")

QuitFlag = False
content  = 0

If Not FSO.FileExists(FileList) Then
  Quit
End If

If Not QuitFlag Then
  On Error Resume Next
  List = FSO.OpenTextFile(FileList, ForReading, False).ReadAll
  If Err.Number <> 0 Then
    Quit
  End If
  On Error GoTo 0
End If

If Not QuitFlag Then
  If InStr(1, vbNewLine & List & vbNewLine, vbNewLine & filename & vbNewLine, vbTextCompare) > 0 Then
    content = 1
  End If
End If

Quit

Sub Quit
  QuitFlag = True
  Set FSO  = Nothing
End Sub
Здесь константе FileList надо присвоить значение полного пути к файлу-списку.

#6:  Author: activeman PostPosted: Wed Jun 04, 2008 17:44
    —
УважаемыйBatya!

Боюсь я ничего не понял!

Что мне с этим добром делать!?

По пунктам? если можно!?

#7:  Author: BatyaLocation: Москва, Россия PostPosted: Wed Jun 04, 2008 18:12
    —
activeman wrote:
Что мне с этим добром делать!?

По пунктам? если можно!?

1. Скопировать архив плагина Script Content Plugin - ссылка выше -> Скачать.
2. Установить плагин (читай справку TC - "Тематические обзоры\Плагины и языки", раздел "Как установить плагин") .
3. В папке установленного плагина открыть на редактирование файл script.ini. Заменить его содержимое приведенным выше текстом.
4. В папке установленного плагина создать текстовый файл General.vbs с приведенным выше текстом.
5. Создать файл "C:\FileList.txt" со списком файлов (твои "40шт"). Имя и размещение этого файла-списка может быть любым, но тогда в файле General.vbs необходимо соответствующим образом изменить строку
Code:
Const FileList = "C:\FileList.txt" 'Файл-список

6. Запустить поиск (Alt+F7).
7. Перейти на закладку "Плагины".
8. Установить галочку "Поиск с плагинами".
9. В поле "Плагин:" выбрать "script".
10. Поле "Свойство:" = "Result".
11. "Операция:" = "содержит".
12. "Значение:" = "1".
13. Нажать "Начать поиск".
14. Радоваться найденным файлам.

#8:  Author: gegabitLocation: дети берутся? PostPosted: Thu Apr 23, 2009 19:31
    —
Батя, а если такая формулировка:
У меня есть список файлов в расшаренной папке вида:
\\docs\db_files\01\45677.pdf
\\docs\db_files\01\45678.pdf
\\docs\db_files\02\45688.pdf
..........

Список большой, более 3к файлов.
Я знаю что в этом списке существуют не все файлы, а некоторые удалены.
Хочу знать каких файлов нет. (т.е. чтобы результат был тех файлов, которых нет)
Не поможешь с скриптом?

#9:  Author: Bishop PostPosted: Thu Apr 23, 2009 20:04
    —
gegabit,

Скрипты для PowerShell.

Получение файлов, которые есть в списке, но нет на диске:
Code:
gc list | ? {-not (test-path $_)}

Получение файлов, которых нет в списке, а есть на диске:
Code:
$list = gc list
dir \\server\share | ? {$list -notcontains $_.fullname}

#10:  Author: KoljasikLocation: СПб PostPosted: Thu Apr 23, 2009 23:12
    —
Batya, а через %commander_path% можно как-нибудь организовать задание файла-списка?

#11:  Author: Dimych PostPosted: Sat Apr 25, 2009 16:44
    —
Koljasik wrote:
а через %commander_path% можно как-нибудь


Например.
1. Заменить начало кода Batya
с
Code:

'============================
' Колонка Result будет возвращать признак наличия файла\каталога в указанном файле-списке:
'   0 - файл\каталог НЕ найден; 1 - файл\каталог найден
'=== Изменяемые параметры ===
Const FileList = "C:\FileList.txt" 'Файл-список
'============================

Dim FSO, List, QuitFlag
Const ForReading = 1
Set FSO = CreateObject("Scripting.FileSystemObject")

на
Code:

'============================
' Колонка Result будет возвращать признак наличия файла\каталога в указанном файле-списке:
'   0 - файл\каталог НЕ найден; 1 - файл\каталог найден
'============================

Dim FSO, List, QuitFlag, FileList
Const ForReading = 1
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")

' Файл-список
FileList="%commander_path%\FileList.txt"

' Замена любых переменных окружения, заданных в FileList
FileList = strReplaceEnveroumentString(FileList)


и 2. Заменить конец кода Batya
с
Code:

Sub Quit
  QuitFlag = True
  Set FSO  = Nothing
End Sub

на
Code:

Sub Quit
  QuitFlag = True
  Set FSO  = Nothing
  Set WSHShell  = Nothing
End Sub

Function strReplaceEnveroumentString(byVal strSource)
' Замена всех переменных окружения в строке strSource на их значение
Dim strFields, intSizeFields, intI, strTarget
strTarget = ""
If strSource <> "" Then
    strFields = Split(strSource,"%")
    intSizeFields = UBound(strFields)
    strTarget=strFields(0)
    For intI = 1 To intSizeFields Step 2
        strTarget = strTarget & WshShell.ExpandEnvironmentStrings("%" & strFields(intI) & "%")
        If intI + 1 <= intSizeFields Then strTarget = strTarget & strFields(intI + 1)
    Next
End If
strReplaceEnveroumentString = strTarget
End Function


Теперь можно в FileList задавать любые переменные окружение, а не только %commander_path%.[/b]

#12:  Author: Bishop PostPosted: Sat Apr 25, 2009 17:27
    —
Dimych
функция strReplaceEnveroumentString абсолютно бесполезна, WshShell.ExpandEnvironmentStrings и так заменяет в переданной строке все вхождения переменных окружения на их значения, и вычленять их и преобразовывать по одной нет смысла.

В начале достаточно:
Code:
FileList = WshShell.ExpandEnvironmentStrings(FileList)

#13:  Author: Dimych PostPosted: Sat Apr 25, 2009 17:50
    —
И то правда. Не проверил.. Smile

#14:  Author: KoljasikLocation: СПб PostPosted: Sun Apr 26, 2009 08:24
    —
Dimych, Bishop,
не работает.
Если сделать набор колонок, то и при первом и втором варианте пишет в графе result "Требуется объект: WScript"

#15:  Author: BatyaLocation: Москва, Россия PostPosted: Sun Apr 26, 2009 14:10
    —
Koljasik wrote:
не работает.
Если сделать набор колонок, то и при первом и втором варианте пишет в графе result "Требуется объект: WScript"

В Script Content Plugin нельзя обращаться к объекту WScript, т.е. нужно так:
Code:
Set WSHShell = CreateObject("WScript.Shell")



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


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

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

Powered by phpBB © 2001, 2005 phpBB Group