Создание папок с именем файлов

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

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

Itar-Tass
Сообщения: 48
Зарегистрирован: Сб янв 17, 2009 23:51

Сообщение Itar-Tass »

Вот этот скрипт работает
http://www.tckb.ru/wiki/Поиск_пустых_каталогов.

Так что вряд ли дело в моем(моих) компьютерах.
Itar-Tass
Сообщения: 48
Зарегистрирован: Сб янв 17, 2009 23:51

Сообщение Itar-Tass »

Нашел в чем причина.

Текст для скрипта нужно сохранять AkelPad(ну или просто блокнотом)

только в кодировке 866(Oem-русская).

В любой другой кодировке,включая юникоде-ошибки.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Itar-Tass писал(а):Вот этот скрипт работает
http://www.tckb.ru/wiki/Поиск_пустых_каталогов.
Я про это уже дважды говорил.
Кстати, код кнопки обычно представляется более цивилизованным путём: в контекстном меню кнопки выполняется "Копировать", далее в пост вставляется из буфера скопированый текст (пример использования тегов отображается при наведении мышки на кнопку "Code").
А насчёт кодировки — у меня этот скрипт (как и другие) сохранён в Windows-1251. При чём тут DOS-кодировка?

P.S. Кстати, это не единственный косяк с кодировками. Ссылочки на Wiki с кириллицей надо оформлять правильно. Советую в посте D1P вызвать в контекстном меню ссылки Свойства и посмотреть, как это должно выглядеть. Разумеется, крокозябры лучше скрыть, заменив в посте ссылку её описанием.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Itar-Tass
Сообщения: 48
Зарегистрирован: Сб янв 17, 2009 23:51

Сообщение Itar-Tass »

Не знаю причем кодировка, но в 1251 работать не хотела.
Текст с одного и того же браузера и с одной той же кодировки сохранял.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Itar-Tass писал(а):Script: C:\Program Files (x86)\Total Commander\PLUGINS\Tools\tcwshelp_b10\Scripts\papki.vbs
Line: 2
Char: 16
Error: Синтаксическая ошибка
Если это скрипт, приведенный здесь во втором посте, то глазами я вижу лишний перевод строки (не знаю, это как движок форума так показывает, или кто-то нажал лишний раз Enter после символа "=". Лучше взять исходный скрипт отсюда.
Нет, я не сплю. Я просто медленно моргаю.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Частенько пользуюсь скриптом, который в противной панели создаёт папку с именем выделенного файла и перемещает его в неё. Иногда возникает нужда переместить в неё не один файл, а неск. а папка называлась бы по имени первого файла из списка выделенных. Пригодился бы такой скрипт.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Сам же ссылку приводил. Второй параметр: %T%S1

P.S.: Чтобы панель не была противной, монитор стоит как следует протереть и при желании украсить стразиками. :wink:
Слово "противный" в значении "противоположный" давно устарело.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
angry_dog
Сообщения: 143
Зарегистрирован: Пт ноя 20, 2009 23:05
Откуда: Питер

Сообщение angry_dog »

С помощью батиного скрипта замечательно создаются группы каталогов по имени файлов, но каталог создается с расширением файла в имени. Есть файл с именем file.jpg, с помощью скрипта создается каталог file.jpg и туда перемещается исходный файл.
Можно ли подредактировать скрипт, чтобы расширение в имени файла закрывалось в скобки с добавлением произвольных (которые можно менять в тексте скрипта) символов, вида: file [jpg.любые_символы]?
Или упрощая задачу, вместо любых символов жестко забить "wv", чтобы получилось file [jpg.wv]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

angry_dog
Есть вещи посовременней: кнопки, скрипт.
К получателю (в т. ч. %T/%P) можно элементарно добавить %O.[%E.блабла] .
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
angry_dog
Сообщения: 143
Зарегистрирован: Пт ноя 20, 2009 23:05
Откуда: Питер

Сообщение angry_dog »

Flasher
я извиняюсь, неправильно сформулировал проблему - заметил только сейчас. Батин скрипт все делает правильно и расширение файла он не использует в названии файла. Это у меня точка в имени файла: computer_643.iso.wv. Соответственно он и создает каталог с именем computer_643.iso, а мне нужно чтобы у каталога было имя computer_643 [iso.wv]
Попробовал вашу кнопку, она работает но делает немного не то - переносит группу файлов под курсором в каталог с именем первого файла, а мне нужно, чтобы каждый файл в отдельный каталог с [iso.wv] на конце.
Скрипт у меня отказался работать - просто ничего не происходит. Может параметры запуска нужны?
И да, "К получателю (в т. ч. %T/%P) можно элементарно добавить %O.[%E.блабла]" не понял куда это.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

angry_dog
В этом скрипте в 18 строке = 3 заменить на > 2 , в 23-й — Bas на Fil , а в 25-й — Execute(BN)(0).Submatches(0) на Replace(BN, A(3)) .
Параметры: %WL "" ^([^.]+)\.(.+) "$1 [$2]"
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
angry_dog
Сообщения: 143
Зарегистрирован: Пт ноя 20, 2009 23:05
Откуда: Питер

Сообщение angry_dog »

Flasher
Спасибо! Все получилось. Полученный (правленный) скрипт:

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

Set A = WSH.Arguments : C = A.Count : If C = 0 Then WSH.Quit 
Set FSO  = CreateObject("Scripting.FileSystemObject") 
Set ShAp = CreateObject("Shell.Application") 
Set List = FSO.OpenTextFile(A(0),,,-1) 
If C > 2 Then _ 
Set Reg  = New RegExp : Reg.Global = True:_ 
Reg.IgnoreCase = True : Reg.Pattern = A(2) 
Do : F = Trim(List.ReadLine) 
  If FSO.FileExists(F) Then 
    BN = FSO.GetFileName(F) 
    If IsObject(Reg) Then If Reg.Test(BN) Then _ 
    BN = Reg.Replace(BN, A(3)) Else BN = "" 
    If Len(BN) Then 
      NF = "" : If C > 1 Then If A(1) <> "" Then NF = FSO.BuildPath(A(1),BN) 
      If NF = "" Then NF = FSO.BuildPath(FSO.GetParentFolderName(F), BN) 
      If Not FSO.FolderExists(NF) Then FSO.CreateFolder(NF) 
      ShAp.NameSpace(NF).MoveHere F 
    End If 
  End If 
Loop Until List.AtEndOfStream : List.Close
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

angry_dog
Пожалуйста. Но со старой шапкой публиковать не имело смысла...
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

angry_dog
Старая шапка из кода удалена.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Kostrula
Сообщения: 2
Зарегистрирован: Сб янв 18, 2020 14:40

Создание папок с именем файлов

Сообщение Kostrula »

Добрый день!

Подскажите пожалуйста, что нужно изменить в коде скрипта по созданию папки с частью имени файла и перемещении в нее файла.
Сейчас, как написали выше "часть имени" - начало имени файла до символа "-" (DashInName = InstrRev(FileName, "-"))
А как сделать, чтобы "часть имени" была концом имени файла от определенного символа? Например:

file_photo1_TST_02_477_0.jpg переместить в папку TST_02_477_0
file_photo22_TST_03_4767_5.tif переместить в папку TST_03_4767_5
file_photo34_TST_05_9827_078.png переместить в папку TST_05_9827_078
Ответить