Фоновое копирование с помощью FastCopy

Здесь обсуждается всё, что касается макросов.
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Фоновое копирование с помощью FastCopy

Post by DV »

Поскольку плагин Background Copy не развивается, а необходимость копирования в фоне есть, было принято волевое решение реализовать копирование в фоне с помощью макроса.
Особенности данного макроса:
  1. Код данного макроса базируется на макросах Plugin_FastCopy & Plugin_TeraCopy (C) SimSU
  2. Почему именно FastCopy? Потому что это "рабочая лошадка", невзирая на его невзрачный внешний вид. TeraCopy выглядит гораздо приятнее, но при копировании файлов порой возникают проблемы. Это неприемлемо.
Сам макрос, версия 1.4.0:


Он же:
Plugin.FastCopy.1.4.0.7z
(3.83 KiB) Downloaded 163 times
Last edited by DV on Mon 12 Sep, 2022 18:22, edited 11 times in total.
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Фоновое копирование с помощью FastCopy

Post by DV »

Latest post of the previous page:

В принципе, можно попробовать отсчитывать тайм-аут от появления процесса "fastcopy.exe" - это, по идее, улучшило бы работу макроса при "холодном старте" FastCopy.
Однако, как написать на Lua что-то такое, я не знаю: https://stackoverflow.com/questions/865 ... -name-in-c
И привязываться к чему-то вроде [ tasklist /FI "IMAGENAME eq fastcopy.exe" ] тоже не хочется: во-первых, зависимость на внешнюю утилиту, во-вторых, надо как-то обработать результат её вызова (проанализировать консольный вывод?).
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Фоновое копирование с помощью FastCopy

Post by HaRT »

DV wrote: Thu 26 Nov, 2020 17:50 зависимость на внешнюю утилиту
Но утилита-то стандартная «искоробочная» ещё со времён WinXP, наподобие xcopy.
DV wrote: Thu 26 Nov, 2020 17:50 надо как-то обработать результат её вызова (проанализировать консольный вывод?)
Да, увы, код возврата не позволяет отличить. Но вот количество строк вывода уже вполне показательно: либо , либо .
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Фоновое копирование с помощью FastCopy

Post by buniak_a_h »

HaRT wrote: Thu 26 Nov, 2020 20:12 Но утилита-то стандартная «искоробочная» ещё со времён WinXP, наподобие xcopy.
По-моему, не совсем стандартная. Когда-то у Far 1.74 был то ли плагин, то ли скрипт, осуществляющий фоновое копирование утилитой KillCopy; увы, в 3-м ФАРе временный файл со списком отмеченных файлов удалялся раньше, чем запускалась утилита (ну, или для KillCopy требовалось наличие этого файла до окончания работы). Танцы с бубнами в виде cmd-файла с какой-то версии перестали помогать. Возможно, теперь бы и заработало (см.
%FarHome%\changelog wrote: drkns 15.11.2020 22:37:26 +0000 - build 5704
1. Увеличена задержка удаления временных файлов, создаваемых по !@!.
), но смысла уже нет.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Фоновое копирование с помощью FastCopy

Post by HaRT »

buniak_a_h wrote: Thu 26 Nov, 2020 23:34 По-моему, не совсем стандартная.
Вообще-то я отвечал DV про TaskList.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Фоновое копирование с помощью FastCopy

Post by buniak_a_h »

HaRT wrote: Fri 27 Nov, 2020 00:16 Вообще-то я отвечал DV про TaskList.
Sorry, я что-то думал, что речь о FastCopy. Извините, что бестолково вклинился.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Фоновое копирование с помощью FastCopy

Post by Wave »

Спасибо, потестирую новую версию. Однако вопрос, исправлялось ли в ней (натыкались ли вы вообще на такую проблему), что если выделить много файлов, то список нифига не передаётся в программу и копирования не случается?
Пользуюсь ФАРом больше 20 лет © собирательный.
DV
Posts: 455
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 31 times
Been thanked: 15 times

Фоновое копирование с помощью FastCopy

Post by DV »

Wave wrote: Tue 01 Dec, 2020 23:31если выделить много файлов, то список нифига не передаётся в программу и копирования не случается?
Под какой системой? Я интенсивно проверял под Windows 7 64-bit и Windows 8.1 64-bit, полёт нормальный.
Возможно, под 32-bit системами другое ограничение на максимальный размер командной строки? Вот соответствующая настройка в макросе:

Code: Select all

  MaxCmdLine     = 32*1024,  -- otherwise a temporary file is used to pass the filenames
                             -- (!) looks like in Windows XP it is limited to 2048
Пояснение: макрос сначала формирует строку с путями к выделенным элементам и проверяет, не превышает ли длина этой строки (MaxCmdLine - 512). Если превышает, то для передачи путей используется временный файл. Этот временный файл удалится через TmpFileTimeout миллисекунд.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Фоновое копирование с помощью FastCopy

Post by Wave »

Да, оно, спасибо.
https://docs.microsoft.com/ru-ru/troubl ... limitation
Несмотря на то, что ограничение Win32 для переменных среды состоит из 32 767 символов, Командная строка игнорирует все переменные среды, наследуемые от родительского процесса и превышающую ограничения 2047 символов (в соответствии с операционной системой).
Пользуюсь ФАРом больше 20 лет © собирательный.
Post Reply

Return to “Обсуждение макросов”