Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Копирование выделенного файла и после определенных действий перемещение обратно (http://forum.oszone.net/showthread.php?t=310025)

Uragan66 06-01-2016 16:27 2591789

Копирование выделенного файла и после определенных действий перемещение обратно
 
Всем доброго времени суток !

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

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

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

Foreigner 06-01-2016 17:07 2591799

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

Uragan66 06-01-2016 18:30 2591834

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

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

Iska 07-01-2016 02:22 2591939

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 2592033

Iska, Спасибо, вроде все получается.

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


Время: 11:55.

Время: 11:55.
© OSzone.net 2001-