点击气球提示时的操作

点击气球提示时的操作

我很容易丢失 USB 加密狗,现在我想配置 Windows“计划任务”,每次它看到带有“插入”我的驱动器的事件时,它都会复制特定文件夹中的所有内容(c>\usb_backups\<UUID>\<today's date>\

现在我正在跟踪包含 ID 的事件 2003(USB 驱动器挂载),但我无法发现驱动器安装在哪个驱动器号上。

调用的脚本应该是这样的:

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

但是,现在,我不知道如何设置%%sourcedrive%%变量%%UUID%%

答案1

看起来USB数据线效果很好,它自我描述为:

USBDLM 是一项 Windows 服务,可控制 Windows 对 USB 驱动器的驱动器号分配。以服务形式运行使其独立于登录用户的权限,因此无需授予用户更改驱动器号的权限。

它会自动解决 USB 驱动器与当前登录用户的网络或替代驱动器之间的冲突。

此外,您还可以为 USB 驱动器定义新的默认字母等等。

它适用于 Windows XP 至 Windows 10。

它是html 帮助页面[显然是从德语翻译过来的?] 表示你可以执行以下操作之一来通过单击或自动复制文件:

  • 在驱动器到达时显示一个气球提示,显示分配的驱动器号
  • 点击气球提示运行某些操作
  • 执行自动运行,也取决于上面提到的标准

它的设置位于 .INI 文件中,或注册表中

所需的驱动器号或安装点和其他设置在与 USBDLM.EXE 位于同一位置的名为 USBDLM.INI 的文本文件中定义。

现代应用程序通常将其设置存储在 Windows 注册表中,但我不喜欢这样。INI 文件是“经典”方法。

...

注册表中的设置:

自 V3.3.1 起,USBDLM 也可以从注册表中读取其设置。它从
HKLM/Software/Uwe Sieber/USBDLM读取

如果该注册表项存在,则会忽略 USBDLM.INI!然后只从 INI 读取日志文件设置。


点击气球提示时的操作

与自动运行事件类似,您可以定义对气球进行左键、右键和中键单击的操作。

;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 知道并复制文件的命令。

在删除时复制文件、BalloonTips 的删除设置或自动运行(可能有时间限制)也可能很有用:

删除时及删除后自动运行

类似于 OnArrival 函数,USBDLM 可以在驱动器“准备好安全移除”时以及驱动器被移除后执行命令行。

1. 关于安全撤离的准备

当 USB 或 Firewire 驱动器“准备好安全移除”时,USBDLM 可以在驱动器仍然可用时做出反应。

这不会花太长时间,在 XP 下最长时间为 30 秒,在 Vista/Win7 下最长时间为 15 秒。但是在处理通知时,无法处理其他事件。因此 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 对此想法的评论]

相关内容