![]() |
Создание макси для Total Commander
Добрый день. Перейду сразу к сути дела. Необходим батник, который сохранял бы имена файлов из папки в которой лежит в текстовой документ, блокнот например.
Теперь подробнее. Есть некая папка, где лежит n-ное количество файлов в одном расширении, имена у всех разные по типу ABV#123456.qst букв может быть и больше, так вот, надо чтобы батник заменял часть имени идущую с "#" на "*", то есть ABV* и сохранял результат по всем файлам в текстовой документ, чтобы конечный результат выглядел следующим образом в одну строку: abv* abc* asd* ghj*... и тд. Такое возможно? |
На WSH:
Скрытый текст
Код:
Option Explicit Исходная папка задаётся параметром скрипта. Для Total Commander можно использовать меню запуска, панель инструментов и т.п. с аргументом «"%P"». А что Вы потом с содержимым этого файла делать будете? |
Iska, Не работает, либо я делаю что то не так. Файл нужен для создания шаблона маски в тотале для последующего копирования файлов по нему.
|
1. Скопируйте код в буфер обмена.
2. Откройте Блокнот. 3. Вставьте скопированный код из буфера обмена в Блокнот. 4. Сохраните содержимое Блокнота в любую папку под любым именем, с расширением «.vbs» в кодировке ANSI/1251. 5. В Total Commander'е добавьте новый пункт меню «Запуск» в виде: Скрытый текст
![]() где: 1) название пункта меню; 2) имя интерпретатора скриптов («wscript.exe» или «сscript.exe»); 3) путь и имя к сохранённому в п.4. файлу с кодом; 4) параметр скрипта, куда при исполнении Total Commander вместо «%P» подставит текущий путь с активной панели. 6. Выберете пункт меню, находясь в искомом каталоге: Скрытый текст
![]() 7. Обновите активную панель, нажав Ctrl-R, дабы увидеть файл с результатами «Result.txt»: Скрытый текст
![]() P.S. Понял Вашу задумку — \Выделение\Загрузить выделение из файла, оно? |
Сделал всё по инструкции.
![]() Вот для этого надо. ![]() |
Цитата:
Скрытый текст
![]() — только обычные двойные. Вероятно Вы взяли их из текста п.5.4 — не надо, уберите угловые и оставьте только двойные. |
Iska, спасибо большое, всё работает! А чтобы скрипт работал в тотале с флешки его лучше в папку с тоталом закинуть, и не будет ли конфликта пути с буквой флешки на разных компах?
|
Цитата:
Цитата:
Скрытый текст
![]() |
Iska, Огромное спасибо! Всё прекрасно работает!
|
Viberezh, а знаете, как всё вышеизложенное выглядит в Far Manager'е, включая и само выделение файлов?
Код:
lua:Keys('Add CtrlY') print('/.+#.*/') Keys('Enter') |
Iska, забавно, но фаром не пользуюсь :)
|
Viberezh, ну, мало ли. Вдруг когда-нибудь дозреете ;).
|
Viberezh, я решил Вас ещё побеспокоить. Вы уверены, что Вам точно нужен такой вот путь: скрипт→файл с масками→загрузить маски для выделения? В Total Commander ведь тоже есть регулярки для выделения:
Скрытый текст
![]() не?! Один раз создать шаблон, затем пользоваться. |
Iska, это создаст шаблон маски файлов с # в имени?
|
Цитата:
|
Iska, такой вариант не подойдёт, суть даже не в решетке а в самих буквах. По файлам запроса создается маска с помощью скрипта и с её помощью копируются необходимые файлы пополнения.
|
Viberezh, почему нет? В чём разница?
|
Iska, потому что есть 2 типа файлов: "запрос" и "пополнение". У каждого информационного банка (ИБ) есть свой файл запроса, пусть ИБ называется "Abv", то файл запроса будет выглядеть условно "abv#1234.qst", соответственно в комплекте может быть несколько ИБ и чтобы их обновить нужны соответствующие файлы пополнения, вот для этого и нужна маска, чтобы отфильтровать отсутствующие в комплекте ИБ.
|
Viberezh, Вы точно на мои вопросы отвечали? Впрочем, ладно, оставим. Если Вам удобнее так, то делайте так. Хотя я лично не вижу никакой разницы.
|
Iska, разница есть, по вашему второму способу выделятся все файлы с решеткой, но дело в том, что они все с решеткой и нужно отсеивать лишние.
|
Цитата:
Код:
.Pattern = "(.+)#.*" Цитата:
|
Iska, вот исходные файлы по которым нужно создать маску, то есть оставить только буквы в именах.
Скрытый текст
![]() А вот файлы из множества которых надо выделить только подходящие по маске. Скрытый текст
![]() Скрипт работает прекрасно и вполне удобен или вы хотите найти более изящное решение? |
Viberezh, предлагаете найти мне на картинках десять отличий™, да ещё и с пропорциональными шрифтами? Увольте. Текст нужен.
|
Iska, текст чего?
|
Viberezh, тех имён файлов, что приведены выше на изображениях из сообщения №22.
|
Iska, это просто пример. Я не понимаю что вы хотите сделать. Файлы всегда разные. Первоначальная задача стояла в том, чтобы из выборки имен файлов убрать лишнюю информацию и предоставить результат в таком виде, чтобы можно было вставить в строку поиска. Буквы буквы и ещё раз буквы это всё что требовалось оставить из названий файлов, с чем скрипт и справляется.
PS. Маска мне нужна не для единичного случая и каждый раз она будет разная. |
Цитата:
Я вот вижу на втором скриншоте файл CONS#DD1016#0000.ANS, на первом — нет. Однако же он преотлично отбирается скриптом: Скрытый текст
![]() хотя Вы говорите, что нет. Цитата:
|
Iska, это всё надо чтобы обновлять Консультант+. Выборка обусловлена комплектом, установленным у клиента. По файлам с расширением "qst" я делаю маску скриптом и потом копирую по маске файлы с расширением "ans" чтобы обновление сделать. Так понятней?
Цитата:
|
Цитата:
Цитата:
|
Цитата:
2. Ваш вариант маски посмотреть, скрипт тоже сюда |
Цитата:
|
Цитата:
|
Цитата:
Скрытый текст
По пункту 1 зачем что-то кидать? Вариантов файлов тьма, масок тоже, задача была же решена, зачем продолжать копаться. |
Время: 10:59. |
Время: 10:59.
© OSzone.net 2001-