PDA

Показать полную графическую версию : Копирование выделенного файла и после определенных действий перемещение обратно


Uragan66
06-01-2016, 16:27
Всем доброго времени суток !

Нужна помощь, если моя задача вообще решаема.
Нужно добавить в пакетный батник команды (или может как-то по другому). Сама задача: в любой папке на компьютере выделить файл ( в моем примере с расширением fb2, название может быть любым), запустить батник( батник будет лежать в папке в корне С) . Батник должен скопировать выделенный файл к себе в папку, произвести с ним определенные манипуляции и переместить этот файл обратно в папку из которой он был взят.

Если поконкретней, хочу в малюсеньком файлменеджере JustManager добавить кнопку на запуск батника, в одном окне выделил файл и нажал кнопку батника, а дальше как я выше описал.

Если это возможно, подскажите, пожалуйста, как это реализовать. Буду очень благодарен за помощь.

Foreigner
06-01-2016, 17:07
Uragan66, Для этого в самом файловом менеджере должны быть предусмотрены такие возможности (как например в FAR). Это вопрос слишком узкий, наверное лучше спросить у разработчиков или на форуме JustManager.

Uragan66
06-01-2016, 18:30
Foreigner, да в самом файлменеджере ничего менять то не нужно, его настройки позволяют добавить кнопку запуска любой программы (а сделать батник exe файлом невелика проблема). Да и нужный файл в папку к батнику можно руками перетащить, а вот как его потом через батник вернуть в исходную папку.

Или нужно хотя бы создать папку возле батника и в нее перемещать файлы по очереди. Просто в папке с батником может находиться только один исходный файл FB2. После манипуляций с ним он на выходе получается out.fb2. Потом нужно его переместить в какую-то другую папку. Как в батнике прописать чтобы эти файлы при перемещении переименовывались как out1, out2 и т.д. ?

Iska
07-01-2016, 02:22
Uragan66, Вы не поймёте. Вот это позволяет Far Manager:
╔══════════════════════════════════════════════════════════════════════════════════════════════ ════ Помощь - FAR ═══════════════════════════════════════════════════════════════════════════════════════════════ ════╗
║ Метасимволы ║
╟─────────────────────────────────────────────────────────────────────────────────────────────────── ──────────────────────────────────────────────────────────────────────────────────────────────────── ────────────╢
║ В ассоциированных командах, пользовательском меню и команде "Применить команду" могут использоваться специальные метасимволы: ▲
║ ▓
║ !! символ '!' ▓
║ ! Длинное имя файла без расширения ▓
║ !~ Короткое имя файла без расширения ▓
║ !` Длинное расширение файла без имени (ext) ▓
║ !`~ Короткое расширение файла без имени (ext) ▓
║ !.! Длинное имя файла с расширением ▓
║ !-! Короткое имя файла с расширением ▓
║ !+! Аналогично !-!, но если длинное имя файла утеряно ▓
║ после выполнения команды, Far восстановит его ▓
║ !@! Имя файла, содержащего имена помеченных файлов ▓
║ !$! Имя файла, содержащего короткие имена помеченных файлов ▓
║ !& Список помеченных файлов ▓
║ !&~ Список помеченных файлов с короткими именами ▓
║ !: Текущий диск в формате "C:" ▓
║ Для сетевых каталогов - "\\server\share" ▓
║ !\ Текущий путь ▓
║ !/ Короткое имя текущего пути ▓
║ !=\ Текущий путь с учётом символических ссылок. ▓
║ !=/ Короткое имя текущего пути с учётом символических ссылок. ▓
║ ░
║ !?<title>?<init>! ░
║ При выполнении команды этот символ заменяется ░
║ данными, введёнными пользователем. <title> и ░
║ <init> - заголовок и исходный текст строки ░
║ редактирования. ░
║ ░
║ Допускается использование нескольких таких символов ░
║ в одной строке, например: ░
║ ░
║ grep !?Search for:?! !?In:?*.*!|c:\far\Far.exe -v - ░
║ ░
║ В <title> можно указать имя истории для строки <init>. ░
║ В этом случае команда имеет следующий формат: ░
║ ░
║ !?$<history>$<title>?<init>! ░
║ ░
║ например: ░
║ ░
║ grep !?$GrepHist$Search for:?! !?In:?*.*!|Far.exe -v - ░
║ ░
║ Для отключения истории оставьте имя пустым. ░
║ ░
║ В <title> и <init> допускается использование прочих ░
║ метасимволов, заключив их в круглые операторные скобки, ▼
║ например: ▲
║ ░
║ grep !?В (!.!) найти:?! |Far.exe -v - ░
║ ░
║ !# Префикс "!#", указанный перед символом ассоциации ░
║ файла, заставляет его (и все последующие) ссылаться ░
║ на пассивную панель (см. примечание 4). ░
║ Например, !#!.! обозначает имя текущего файла на ░
║ пассивной панели. ░
║ ░
║ !^ Префикс "!^", указанный перед символом ассоциации ░
║ файла, заставляет его (и все последующие) ссылаться ░
║ на активную панель (см. примечание 4). ░
║ Например, !^!.! обозначает имя текущего файла на ░
║ активной панели, а конструкция !#!\!^!.! - файл на ░
║ пассивной панели с таким же именем, как имя текущего ░
║ файла на активной панели. ░
║ ░
║ Примечания: ░
║ ░
║ 1. Far при обработке метасимволов подставляется только то, что они означают (имя файла, расширение и т.д.). Никаких дополнительных символов (например, кавычек или фамилий разработчиков Far) не подставляется ░
║ и вы должны это сделать сами, если потребуется. Например, если используемая в ассоциациях программа требует, чтобы имя файла было в кавычках, то вы должны писать program.exe "!.!", а не program.exe !.!. ▓
║ ▓
║ 2. Для ассоциаций !@! и !$! допускаются следующие модификаторы: ▓
║ ▓
║ 'Q' - заключать имена с пробелами в кавычки; ▓
║ 'S' - использовать '/' вместо '\' в путях файлов; ▓
║ 'F' - использовать полный путь; ▓
║ 'A' - использовать кодовую страницу ANSI; ▓
║ 'U' - использовать кодовую страницу UTF-8; ▓
║ 'W' - использовать кодовую страницу UTF-16 (Little endian). ▓
║ ▓
║ Например, ассоциация !@AFQ! - имя файла, содержащего имена помеченных файлов с полным путём в кодовой странице ANSI; имена файлов, содержащие пробелы будут заключены в кавычки. ▓
║ ▓
║ 3. Метасимволы !@! и !$! в меню выбора (когда задано несколько ассоциаций) показываются как есть, преобразование происходит в момент исполнения команды. ▓
║ ▓
║ 4. Префиксы "!#" и "!^" работают как переключатели для ассоциаций. Действие этих префиксов распространяется до следующего подобного префикса. Например: ▓
║ ▓
║ if exist !#!\!^!.! diff -c -p !#!\!^!.! !\!.! ▓
║ ▓
║ "Если на пассивной панели существует такой же файл, как и на ▓
║ активной под курсором, то показать расхождения между файлом ░
║ на пассивной панели и файлом на активной панели, независимо ░
║ от имени текущего файла на пассивной панели" ░
║ ░
║ 5. Если нужно передать программе имя с завершающей обратной чертой, используйте кавычки - "!"\. ▼
║ Например, распаковать rar-архив в папку с таким же именем: ▓
║ ▓
║ winrar x "!.!" "!"\ ▓╚══════════════════════════════════════════════════════════════════════════════════════════════════ ════════════════════════════════════════════════════════════════════════════════════════════════════ ═════════════╝
Т.е., мы вписываем в UserMenu Far Manager'а путь к пакетному файлу, добавляем обрамлённые кавычками метасимволы "!\!.!", указывающие на текущий файл. Всё!

Всё остальное зависит от не приведённого Вами содержимого пакетного файла.

Update: Вам, для JustManager'а, надо будет добавить в меню пользовательскую команду, указав в «Command» Ваш пакетный файл, а в «Parameters» макрос «%FULL%».

Uragan66
07-01-2016, 13:58
Iska, Спасибо, вроде все получается.

Можно было бы использовать и Far, классный файл менеджер, но слишком громоздкий для моей задачи.




© OSzone.net 2001-2012