1

Я очень склонен терять USB-ключи, теперь я хочу настроить «запланированную задачу» Windows, чтобы каждый раз, когда он видит событие со «вставкой» моего диска, он копировал все содержимое в определенную папку (c>\usb_backups\<UUID>\<today's date>\)

Теперь я отслеживаю событие 2003 (монтирование usb-накопителя), которое содержит идентификатор, но я не могу определить, по какой букве диска смонтирован диск.

Вызванный скрипт должен быть примерно таким:

@xcopy /E /C /Q /H /Y %%sourcedrive%%\ %systemdrive%\usb_backups\%%UUID%%\%%date%%\

Но сейчас я не знаю, как установить %%sourcedrive%% и %%UUID%% .

1 ответ1

2

Похоже, что USBDLM будет отлично работать, он описывает себя как:

USBDLM - это служба Windows, которая позволяет управлять назначением буквы диска Windows для USB-накопителей. Работа в качестве службы делает ее независимой от привилегий пользователя, вошедшего в систему, поэтому нет необходимости предоставлять пользователям право изменять буквы дисков.

Он автоматически разрешает конфликты между USB-накопителями и сетевыми или вспомогательными накопителями текущего пользователя.

Кроме того, вы можете определить новые буквы по умолчанию для USB-накопителей и многое другое.

Работает от Windows XP до Windows 10.

Это HTML-страница справки [по-видимому, перевод с немецкого?] говорит, что вы можете сделать что-то вроде этого, чтобы скопировать файлы одним щелчком мыши, или автоматически:

  • позвольте показать всплывающую подсказку по прибытии диска, которая показывает назначенную букву диска
  • запустить что-нибудь по нажатию на всплывающей подсказке
  • выполнение автозапуска, также в зависимости от указанных выше критериев

Это настройки либо в.INI-файл или реестр

Желаемые буквы диска или точки монтирования и другие параметры определяются в текстовом файле с именем USBDLM.INI, расположенном в том же месте, что и USBDLM.EXE.

Современные приложения часто хранят свои настройки в реестре Windows, но мне это не нравится. INI-файлы - это «классический» подход.

...

Настройки в реестре:

Начиная с V3.3.1 USBDLM также может считывать свои настройки из реестра. Это читает от
HKLM/ Программное обеспечение / Uwe Sieber / USBDLM

Если этот раздел реестра существует, то USBDLM.INI игнорируется! Только настройки файла журнала читаются из INI тогда.


Действия при нажатии на Balloontip

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

;on left click, open a simple Explorer window with the drive
[OnBalloonClick] open="%windir%\explorer" %drive%

;on right click, open a foto software [OnBalloonRClick]
open="C:\Program Files\FotoSoft\fotosoft.exe" %drive%

Вы можете определить несколько событий в зависимости от критериев, как показано для [AutoRun].


2. Глобальные настройки автозапуска в USBDLM.INI

2.1 запускается по объемам

Образец 2:

Если файл DATA.TXT существует, скопируйте его с диска в C:\Data

[OnArrival1]
FileExists=%drive%\DATA.TXT
open="%windir%\System32\cmd.exe" /c copy "%drive%\DATA.TXT" "C:\Data"

cmd - командный процессор Windows, /c означает "выполнить команду и затем завершить", copy - это команда, которую cmd знает и копирует файлы.

Также полезным может быть копирование файлов при удалении, подсказки Balloon при настройках удаления или автозапуск (возможно, с ограничением по времени):

Автозапуск на и после удаления

По аналогии с функцией OnArrival USBDLM может выполнять командную строку, когда диск "подготовлен к безопасному удалению" и после удаления диска.

1. На подготовку к безопасному удалению

Когда накопитель USB или Firewire становится "подготовленным к безопасному удалению", USBDLM может реагировать, пока накопитель еще доступен.

Это не должно занять слишком много времени, максимальное время составляет 30 секунд под XP и 15 секунд с Vista/Win7. Но пока уведомление обрабатывается, никакие другие события не могут быть обработаны. Поэтому USBDLM ждет только 10 секунд. Если запущенный процесс все еще выполняется после этого времени, USBDLM отклоняет запрос на удаление. Затем Windows говорит «USBDLM предотвращает удаление ...».

Пример для копирования файла c:\test.txt в папку \backup на диске для удаления:

[OnRemovalRequest]
open="%windir%\System32\cmd.exe" /c copy "C:\test.txt" %drive%\backup

Как и в первом примере, но только если на диске существует файл \backup \test.txt для удаления:

[OnRemovalRequest]
FileExists=%drive%\backup\test.txt
open="%windir%\System32\cmd.exe" /c copy "C:\test.txt" %drive%\backup

Доступно несколько переменных , например, эти полезные

Variable             Description          Sample
--------             -----------          ------
%DriveLetter%        drive letter         X
%Drive%              drive                X:
%Root%               drive root           X:\
%DevName%            device name          Corsair Flash Voyager
%Label%              volume label         My flash drive
%Size%               volume size          16 GB
%KernelName%         kernel name          \Device\Harddisk3\DP(1)0-0+d
%PartitionName%      Partition name       \Device\Harddisk2\Partition1
%DiskSignature%      disk signature MBR   9810ABEF
%GptDiskIdGuid%      GPT disk ID GUID     {GUID}
%PureVolumeName%     pure volume name     Volume{GUID}
%DateISO%            Date (yyyy-mm-dd)    2016-10-31
%Time%               Time (hh:mm:ss)      12:00:00

[Спасибо комментарий Montonero для идеи]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .