Answers:
我使用了很多便携式应用程序,并且使用了两个专门为此设计的程序。他们俩都做同一件事,但方式不同。
eXpresso(使用 AutoHotkey制造)可拦截鼠标单击并更改操作以打开与文件类型相关联的程序。
便携式文件关联器(使用 AutoIt制作)可在HKCU注册表配置单元中创建文件关联项,而无需管理员权限,可以将其设置为在程序退出时将其删除。我更喜欢这种方式,因为也可以进行输入然后退出而不删除关联,这在我自己的计算机上很有用(有关更高级用法的说明位于program文件夹中的某个文件中)。它的工作方式还允许您为文件类型定义图标。当您下载该程序时,存档文件的密码在文件名中。
使用AutoIt和AutoHotkey制作的程序有时会被反病毒程序标记为病毒,因为使用它们来制作病毒,但是这些程序是完全安全的。
这是我使用的,可能会过于复杂:
Q:
或另一个驱动器号(subst Q: "%~dp0"
基本上)Q:\7z-portable\7zportable.exe
,仅此而已。Q:\myprogram.exe
而不是different_every_time:\myprogram.exe
您可以在批处理脚本(.bat)中使用标准的assoc命令来保存,设置和重置文件关联。
assoc命令可以在命令提示符(cmd)中显示和关联:
该命令还可以设置文件关联:
您可以在USB磁盘(或其他位置)的根文件夹中创建以下两个.bat文件。这些批处理文件要求在同一文件夹中存在一个名为prefix的文件,该文件仅可以使用记事本并键入字符串“ assoc”创建,不带引号且结尾为空格,并且非常重要,而无需按Enter键(因此,没有行尾)。
在创建另一个restore.bat文件后,我们将使用第一个.bat文件称为myapps.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时,结果示例如下:
我假设您使用的是PortableApps.com打包的软件。在等待实现文件关联时,Xenon Portable可能是最简单的解决方案。
您可以使用GUI来管理文件关联...
或者您可以编辑XenonPortable\Data\settings\assoc.ini
配置文件。
格式如下:
[<extension>]
icon=<image>.ico
exe=|XEDIR|\<path>
哪里<path>
是相对XenonPortable
目录。
如paradroid所述,以前您可以使用eXpresso(或现已停用)或PortableFileAssociator之类的应用来解决此问题。不幸的是,从Windows 8开始,不再可以临时设置文件关联。
正如John T. Haller解释的-PortableApps.com的创建者
Windows 8、8.1和10不允许应用调整文件关联,然后再按照我们为Windows XP / Vista / 7开发时计划的方式重新设置它们。关联必须通过操作系统进行,并提示用户进行更改。这是设计使然,因此,应用程序无法在未经您许可的情况下窃取关联,例如将自己设置为默认浏览器。