![USB 记忆棒的便携式文件关联吗?](https://linux22.com/image/1302561/USB%20%E8%AE%B0%E5%BF%86%E6%A3%92%E7%9A%84%E4%BE%BF%E6%90%BA%E5%BC%8F%E6%96%87%E4%BB%B6%E5%85%B3%E8%81%94%E5%90%97%EF%BC%9F.png)
我有一个装有 PortableApps 的 USB 记忆棒,可以随身携带到不同的地方。
但有一件事让我很恼火,就是当我打开一个文件(例如*.flv
或*.html
)时,Windows 要么说它不受支持,要么打开一个我不想使用的程序(例如 Win.MP),而我的 USB 驱动器上有“正确的”程序(我想要使用的)。
当我执行一个/几个程序时,是否有任何可移植程序可以关联我的“不受支持”的文件?
(我正要使用ftype
批处理assoc
文件,但它需要管理员权限,所以这似乎不是最好的解决方案。)
答案1
我使用了很多便携式应用程序,并且我使用两个专门为此开发的程序。它们都做同样的事情,但方式不同。
意式浓缩咖啡(使用自动热键) 拦截鼠标点击并更改操作以打开与文件类型关联的程序。
便携式文件关联器(使用自动识别) 在 HKCU 注册表配置单元中创建文件关联条目,这不需要管理员权限,并且可以设置为在退出程序时删除它们。我更喜欢这个,因为它也可以创建条目然后退出而不删除关联,这在我自己的电脑上很有用(更高级使用的说明位于程序文件夹中的某个文件中)。它的工作方式还允许您为文件类型定义图标。当您下载此程序时,存档文件的密码位于文件名中。
使用 AutoIt 和 AutoHotkey 制作的程序有时会被防病毒程序标记为病毒,因为病毒已经使用它们制作,但这些程序是完全安全的。
答案2
这是我使用的,可能过于复杂:
- 在 USB 驱动器上有一个批处理文件,将其文件夹映射到
Q:
或另一个驱动器号(subst Q: "%~dp0"
基本上) - 使用具有自定义文件关联的便携式浏览器。我使用 FreeCommander;在“附加功能、首选项、程序”下,您可以根据文件的扩展名设置按 F4 键打开的自定义程序。例如,我已将 7z、zip、tar 等映射到 7zip-portable。因此,您所要做的就是将编辑器设置为,
Q:\7z-portable\7zportable.exe
仅此而已。
答案3
您可以使用标准副教授批处理脚本(.bat)中的命令来保存、设置和重置文件关联。
assoc 命令可以显示和关联,例如在命令提示符(cmd)中:
该命令还可以设置文件关联:
您可以在 USB 磁盘的根文件夹(或其他地方)上创建以下两个 .bat 文件。这些批处理文件要求在同一文件夹中存在一个名为 prefix 的文件,该文件只需使用记事本创建一次并输入字符串“assoc ”,不带引号并以空格结尾,并且(非常重要)不按 Enter 键(因此它没有行尾)。
我们将第一个 .bat 文件命名为 myapps.bat,其目的是分配新的文件关联,在创建另一个 restore.bat 文件之后,您将在弹出 USB 磁盘之前使用该文件来恢复旧的文件关联。
示例 myapps.bat 将 html、abab 和 htm 文件关联设置为 myprog1.exe 等:
@echo off
echo @echo off >restore.bat
cmd /q /c doassoc html "%cd%\myprog1.exe"
cmd /q /c doassoc abab "%cd%\myprog2.exe"
cmd /q /c doassoc htm "%cd%\myprog3.exe"
del ftemp1
del ftemp
该变量%cd%
代表当前目录,但您也可以使用%cd:~0,2%
它来提供当前磁盘(例如 G:)以及磁盘上的任何其他相关文件规范。
为一个文件关联执行工作的doassoc.bat文件将包含:
echo assoc .%1= >ftemp1
assoc .%1 >nul
IF %ERRORLEVEL% NEQ 0 goto notfound
assoc .%1 >ftemp
copy /b /y prefix+ftemp ftemp1 >nul
:notfound
copy /b /y restore.bat+ftemp1 restore.bat >nul
assoc .%1=%2
运行 myapps.bat 然后运行 restore.bat 的结果示例如下: