Как переместить файлы автоматом, каждый в свой каталог?

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

hawk777
Перед 40-ой строкой

Код: Выделить всё

FSO.CopyFile   File, Fold & "\", True
добавь

Код: Выделить всё

MsgBox "Папка:" & vbNewLine & Fold & vbNewLine & "Файл:" & vbNewLine & File
Запусти скрипт для одного файла, на котором он спотыкается. Мне нужно, чтобы ты прислал полностью текст отладочного сообщения и сообщения с ошибкой. Для копирования текста сообщения когда оно возникнет, нажми Ctrl+C, а потом вставь сюда.
Нет, я не сплю. Я просто медленно моргаю.
hawk777
Сообщения: 61
Зарегистрирован: Сб дек 27, 2008 13:16

Сообщение hawk777 »

Batya
---------------------------
Сервер сценариев Windows
---------------------------
Сценарий: C:\Program Files\Total Commander\Utils\WHS\asdf.vbs
Строка: 31
Символ: 1
Ошибка: Путь не найден
Код: 800A004C
Источник: Ошибка выполнения Microsoft VBScript

---------------------------
ОК
---------------------------
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

hawk777
А что у тебя в 31-й строке?
Если
FSO.CopyFile File, Fold & "\", True
то смотри пост выше.
Нет, я не сплю. Я просто медленно моргаю.
ALekseyka
Сообщения: 3
Зарегистрирован: Пн мар 02, 2009 16:22

Сообщение ALekseyka »

Тут возник другой вопрос, имеются файлы:
1205^DSC_0784.JPG
1205^DSC_0785.JPG
1205^DSC_0786.JPG
а также:
1205_1^DSC_0784.JPG
1205_1^DSC_0785.JPG
1205_1^DSC_0786.JPG
и файлы:
1205_2^DSC_0784.JPG
1205_2^DSC_0785.JPG
1205_2^DSC_0786.JPG
при применении скрипта все эти файлы складываются в папку 1205,
а не в 1205, 1205_1 и 1205_2 соответственно.
Как поправить скрипт?
Заранее благодарен.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

ALekseyka
Вот переделанный вариант скрипта:

Код: Выделить всё

'=====================================================================
' Перемещение выделенных файлов в соответствующие им папки на 
'   противоположной панели TC
' Папка соответствует файлу, если ее имя является началом имени файла

' Параметры вызова из TC:
' %L "%T"
'=====================================================================

Option Explicit
Dim Title, Mess, FSO, ListF, List, Target, Fold, File, Name, i
' Проверяем параметры
Title = "Внимание!"

If WScript.Arguments.Count < 2 Then
  Mess = "Неправильно указаны параметры!"
  MessQuit
End If

Set FSO = CreateObject("Scripting.FileSystemObject")
ListF   = WScript.Arguments(0)
Target  = WScript.Arguments(1)

If Not FSO.FileExists(ListF) Then
  Mess = "Неправильно указан файл-список обрабатываемых файлов!"
  MessQuit
End If

If Not FSO.FolderExists(Target) Then
  Mess = "Неправильно указана целевая папка!"
  MessQuit
End If
If Right(Target, 1) <> "\" Then Target = Target & "\"

List = Split(FSO.OpenTextFile(ListF).ReadAll, vbNewLine)
For Each File In List
  Name = FSO.GetBaseName(File)
  For i = Len(Name) To 1 Step -1
    Fold = Target & Left(Name, i)
    If FSO.FolderExists(Fold) Then
      FSO.CopyFile   File, Fold & "\", True
      FSO.DeleteFile File
      Exit For
    End If
  Next
Next

Quit

Sub MessQuit
  MsgBox Mess, vbOKOnly + vbError, Title
  Quit
End Sub

Sub Quit
  Set FSO = Nothing
  Wscript.Quit
End Sub
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Добрый вечер подскажите, можно ли подкорректировать скрипт, чтобы он перемещал файлы во вложенные папки на противоположной панели
считая знак(_) вложенной папкой, ну на пример файлы

Код: Выделить всё

videos_1002_m1dkurs_1.mov
videos_1003_m1drurs_2.mov
перемещались в папки

Код: Выделить всё

videos/1002/m1dkurs/
videos/1003/m1drurs/
 
соответственно, а если знак(_) в имени файла отсутствует(на знак(.) и пробел пусть скрипт не реагирует), то исходной считается первая папка. Заранее благодарен.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Спасибо Tol!k Проблема решена.
alex-navigator
Сообщения: 8
Зарегистрирован: Сб дек 14, 2013 21:23

Сообщение alex-navigator »

Batya
Добрый вечер Batya! Подскажите пожалуйста, что поправить в скрипте, чтоб:
«Перемещение выделенных файлов в соответствующие им папки на противоположной панели TC
Папка соответствует файлу, если ее имя является началом имени файла
»
Нужно чтоб «Папка соответствует файлу, если ее имя являлось концом имени файла»
Спасибо большое!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

alex-navigator
Из памятки: Укажите ссылку на нужный пост, если скриптов в топике приведено более одного.
Если касается второго скрипта, то: Left заменить на Right.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
alex-navigator
Сообщения: 8
Зарегистрирован: Сб дек 14, 2013 21:23

Сообщение alex-navigator »

Flasher
Спасибо, очень помогли!!!
А подскажите, пожалуйста, например есть файл с названием "Пример_001_пример" и папка 001, что поправить в скрипте, чтобы файл переместился в папку? Ещё раз спасибо большое!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

alex-navigator
А если базовое имя файла - "Пример1_001_002_пример2", в какую папку перемещать?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
alex-navigator
Сообщения: 8
Зарегистрирован: Сб дек 14, 2013 21:23

Сообщение alex-navigator »

Flasher писал(а):alex-navigator
А если базовое имя файла - "Пример1_001_002_пример2", в какую папку перемещать?
Flasher, такого варианта у меня не будет.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

alex-navigator
Т.е. правильно я понимаю, что пляшем от двух знаков подчёркивания?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
alex-navigator
Сообщения: 8
Зарегистрирован: Сб дек 14, 2013 21:23

Сообщение alex-navigator »

Flasher
к примеру файл:
пример_1519.avi_thumbs_[2013.12.15_18.08.08] и папка 1519. Возможно ли это, чтоб этот файл переместился в эту папку? Может я что-то не правильно объясняю.
Ответить