Вывод descript.ion в файл удобочитаемый

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

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

slideray
Сообщения: 115
Зарегистрирован: Пн июн 28, 2010 09:34

Сообщение slideray »

Да, ребятушки! Класс! Сработали оба способа, и через листер плагин получилось и через кнопку. Спасибо большое за своевременную помощь, действительно очень было надо (да и будет еще). Сразу отписаться не удалось. А дело было, если интересно, в следующем: Поставил на закачку большое количество торрентов, и сами торрент файлы забил комментами - полное (настоящее) название файла, потому как бывают названы либо сокращениями, либо вообще непойми чем... после закачки из одной кучи все разобрать было бы проблематично.
Вот я групповым переименованием и обозвал уже закаченные торренты по именам из списка (в файле) (предварительно отредактировав его в редакторе, так как в комментариях помимо самих названий файлов к ним были еще и описания)
Batya писал(а): (про возможности плагина) Ну, не очень-то. Оформление можно применять только для всего текста сразу, нельзя применять разное для отдельных фрагментов текста.
И все же интерес для меня представляет. очень даже пригодился )
А синтаксис в скриптах используется исключительно дельфийский? (я не компетентен в вопросах ппрограммирования, так что не ругайте сильно...) И еще, копирование из вообще невозможно?
Tol!k писал(а):Или таки нужно вычленение из descript.ion комментов для выделенных файлов...
Да, именно! Но можеш уточнить, нужно ли там указывать полный путь к ssed.exe (где именно) и как коментарий направить в файл а не в поток. И что значит поток? Приведи, если не трудно, вариант скрипта с условием, что ssed.exe лежит по адресу:
%Commander_Path%\SCRIPTS\ssed.exe
и коменты сохраняются в файл.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

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

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

@echo off &setlocal enableextensions &chcp 1251 >nul

rem Добавление комментариев из descript.ion в файл descript.txt
rem Параметры для ТС: "%F" descript.txt
rem Используется sed
set sed="%Commander_Path%\SCRIPTS\ssed.exe"

if "%~2"=="" exit
for /f "usebackq delims=" %%f in ("%~1") do call :d "%%f" %2
goto :eof

:d
set "f=%~1"
set "f=%f:\=%"
if "%f%"=="%f: =%" (
%sed% -n -e /^%f%\s/p descript.ion |>>%2 %sed% -r -e s/(^\"[^\"]+\")*\s/\1\n/;s/В$/\n/g;s/\\n/\n/g
) else (
%sed% -n -e /"^\"%f%\"\s"/p descript.ion |>>%2 %sed% -r -e s/(^\"[^\"]+\")*\s/\1\n/;s/В$/\n/g;s/\\n/\n/g
)
goto :eof
slideray
Сообщения: 115
Зарегистрирован: Пн июн 28, 2010 09:34

Сообщение slideray »

Я лузер! Не работает.
Создаю кнопку:

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

TOTALCMD#BAR#DATA 
 %comspec% /c %COMMANDER_PATH%\descript2comment.cmd 
 %F 
 %COMMANDER_PATH%\WCMICONS0.DLL,63 
 Добавить комментарии из descript.ion в поток :comment.txt 


 -1
Далее кидаю вышеприведенный скрипт в файл:
"%COMMANDER_PATH%\descript2comment.cmd"
Тыкаю кнопку при выделенном файле, содержащем коментарий
- ничего не происходит.
Тыкаю кнопку при выделенном файле descript.ion
- ничего не происходит.
Тыкаю кнопку не выделяя ничего, курсор над файлом descript.ion
- ничего не происходит.
Тыкаю кнопку не выделяя ничего, курсор над файлом содержащем комент
- ничего не происходит.
Что я делаю не так? Что должно происходить? При каком условии?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Лузер - это неудачник. Только на невезение это не похоже. Тут с внимательностью проблемы.
slideray писал(а):%comspec% /c %COMMANDER_PATH%\descript2comment.cmd
Это-то зачем?
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\descript2comment.cmd
"%F" descript.txt
%COMMANDER_PATH%\WCMICONS0.DLL,63
Добавить комментарии из descript.ion в поток :comment.txt
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

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

slideray
Параметры для ТС: "%F" descript.txt
Выделять файлы, для которых нужно вытянуть комментарии

[mentor mode]
...при выделенном файле, содержащем коментарий
Нет в файле комментария. Комментарии находятся в descript.ion
Правильно: "...при выделенном файле, для которого descript.ion содержит комментарий",
"...при выделенном файле, для которого есть комментарий (в descript.ion)"

[/mentor mode]

Добавлено спустя 10 минут:
Flasher писал(а):
%comspec% /c %COMMANDER_PATH%\descript2comment.cmd
Это-то зачем?
В процессе отладки, бывает приходится менять /c на /k
Не существенно.

А вот %COMMANDER_PATH%\*.cmd стоит взять в кавычки.
И придумать другое название для файла.

И исправить название кнопки.
Последний раз редактировалось Tol!k Ср сен 14, 2011 21:22, всего редактировалось 1 раз.
slideray
Сообщения: 115
Зарегистрирован: Пн июн 28, 2010 09:34

Сообщение slideray »

Есть! Получилось! Спасибо!
после обращения к файлу *.cmd (в данном случае descript2comment.cmd), файл становится защищен от записи и не может быть изменен/удален. Какой процесс пользует файл? Как его разблокировать? (даже unlocker не помогает)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k писал(а):А вот %COMMANDER_PATH%\*.cmd стоит взять в кавычки.
И придумать другое название для файла.
Если писать эту переменную в начале, как у меня, то не стоит.
А что с названием не так?
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

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

slideray
:o
Ну, вроде кроме cmd.exe никто его не должен использовать.
cmd.exe закончил работать (чёрное окно не висит)?

В редакторе .cmd не открыт ?

Добавлено спустя 6 минут:
Flasher писал(а):
%COMMANDER_PATH%\*.cmd стоит взять в кавычки.
И придумать другое название для файла.
Если писать эту переменную в начале, как у меня, то не стоит.
А если в %COMMANDER_PATH% есть пробел?
Flasher писал(а):А что с названием не так?
Ну, какбы уже есть на форуме код с таким названием
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k писал(а):А если в %COMMANDER_PATH% есть пробел?
Об том и речь. Гислер этот момент запрограммировал. Кавычки не требуются.
Tol!k писал(а):Ну, какбы уже есть на форуме код с таким названием
Ну, так в любом случае в одной папке одноимённые файлы не могут находиться. :wink:
slideray
Сообщения: 115
Зарегистрирован: Пн июн 28, 2010 09:34

Сообщение slideray »

Tol!k писал(а):slideray
cmd.exe закончил работать (чёрное окно не висит)?
не висит.
В редакторе .cmd не открыт ?
не открыт
А если в %COMMANDER_PATH% есть пробел?
пробела нет
Flasher писал(а):А что с названием не так?
не, с названием все ок, просто у меня там эксперименты были, вот я и хотел именно под этим названием рабочий скрипт поставить. Даже удалить не получается. Название по сути не важно, почему файл блокируется не пойму.

Если делаешь добавление коментариев повторным нажатием кнопки, то файл не перезаписывается (это хорошо), а коментарии дописываются, вот только дописываются они без переноса строки (т.е. сливаются с последним предыдущим коментарием) можно ли добавить перенос строки чтобы был либо перед первым коментарием либо после последнего? (меня понятно?)
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

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

коментарии дописываются, вот только дописываются они без переноса строки (т.е. сливаются с последним предыдущим коментарием) можно ли добавить перенос строки
замени

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

:d
set "f=%~1"
set "f=%f:\=%"
if "%f%"=="%f: =%" (
%sed% -n -e /^%f%\s/p descript.ion |>>%2 %sed% -r -e s/"(^[^ ]+)\s"/\n\1\n/;s/В$/\n/g;s/\\n/\n/g
) else (
%sed% -n -e /"^"%f%"\s"/p descript.ion |>>%2 %sed% -r -e s/(^"[^"]+")\s/\n\1\n/;s/В$/\n/g;s/\\n/\n/g
)
goto :eof
Добавлено спустя 6 минут:
Flasher писал(а):Гислер этот момент запрограммировал. Кавычки не требуются.
А вот такой момент запрограммировал?

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

TOTALCMD#BAR#DATA 
%COMMANDER_PATH%\descript2comment.cmd /левыйпараметр
"%F" descript.txt
Flasher писал(а):
Ну, какбы уже есть на форуме код с таким названием
Ну, так в любом случае в одной папке одноимённые файлы не могут находиться. :wink:
Я не об этом. Я боюсь, что через некоторое время slideray будет спрашивать про один код, а я буду чесать репу над другим
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k писал(а):А вот такой момент запрограммировал?
А почему нет? Конечно. У меня хватает кнопок с таким написанием.
Tol!k писал(а):а я буду чесать репу над другим
Андестенд.
slideray
Сообщения: 115
Зарегистрирован: Пн июн 28, 2010 09:34

Сообщение slideray »

Фантастика! Безупречно!
Ответить