Страница 2 из 3

Добавлено: Ср янв 07, 2009 23:50
Batya
hawk777
Перед 40-ой строкой

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

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

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

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

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

---------------------------
ОК
---------------------------

Добавлено: Пт янв 16, 2009 17:42
Batya
hawk777
А что у тебя в 31-й строке?
Если
FSO.CopyFile File, Fold & "\", True
то смотри пост выше.

Добавлено: Пн мар 02, 2009 19:52
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 соответственно.
Как поправить скрипт?
Заранее благодарен.

Добавлено: Вт мар 03, 2009 12:15
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

Добавлено: Пн июл 25, 2011 00:16
shveicar
Добрый вечер подскажите, можно ли подкорректировать скрипт, чтобы он перемещал файлы во вложенные папки на противоположной панели
считая знак(_) вложенной папкой, ну на пример файлы

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

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

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

videos/1002/m1dkurs/
videos/1003/m1drurs/
 
соответственно, а если знак(_) в имени файла отсутствует(на знак(.) и пробел пусть скрипт не реагирует), то исходной считается первая папка. Заранее благодарен.

Добавлено: Пн июл 25, 2011 02:20
Tol!k

Добавлено: Пн июл 25, 2011 02:46
shveicar
Спасибо Tol!k Проблема решена.

Добавлено: Сб дек 14, 2013 21:32
alex-navigator
Batya
Добрый вечер Batya! Подскажите пожалуйста, что поправить в скрипте, чтоб:
«Перемещение выделенных файлов в соответствующие им папки на противоположной панели TC
Папка соответствует файлу, если ее имя является началом имени файла
»
Нужно чтоб «Папка соответствует файлу, если ее имя являлось концом имени файла»
Спасибо большое!

Добавлено: Вс дек 15, 2013 17:10
Flasher
alex-navigator
Из памятки: Укажите ссылку на нужный пост, если скриптов в топике приведено более одного.
Если касается второго скрипта, то: Left заменить на Right.

Добавлено: Вс дек 15, 2013 21:17
alex-navigator
Flasher
Спасибо, очень помогли!!!
А подскажите, пожалуйста, например есть файл с названием "Пример_001_пример" и папка 001, что поправить в скрипте, чтобы файл переместился в папку? Ещё раз спасибо большое!

Добавлено: Вс дек 15, 2013 21:34
Flasher
alex-navigator
А если базовое имя файла - "Пример1_001_002_пример2", в какую папку перемещать?

Добавлено: Вс дек 15, 2013 21:51
alex-navigator
Flasher писал(а):alex-navigator
А если базовое имя файла - "Пример1_001_002_пример2", в какую папку перемещать?
Flasher, такого варианта у меня не будет.

Добавлено: Вс дек 15, 2013 21:59
Flasher
alex-navigator
Т.е. правильно я понимаю, что пляшем от двух знаков подчёркивания?

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