我很容易丢失 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 对此想法的评论]