USB记忆棒的便携式文件关联?


8

我有一个随身携带的USB随身听,可在不同地方随身携带。

但是让我烦恼的一件事是,当我打开文件(例如*.flv*.html)时,Windows表示它不受支持,或者它打开了我不想使用的程序(例如Win.MP),而我却“ ”(我要使用)程序。

当我仅执行一个/几个程序时,是否有任何可移植程序可以关联我的“不受支持”文件?

(我正要使用ftype,并assoc在一个批处理文件,但它需要管理员权限,这样似乎并没有最好的解决办法。)

Answers:


6

我使用了很多便携式应用程序,并且使用了两个专门为此设计的程序。他们俩都做同一件事,但方式不同。

eXpresso(使用 AutoHotkey制造)可拦截鼠标单击并更改操作以打开与文件类型相关联的程序。

便携式文件关联器(使用 AutoIt制作)可在HKCU注册表配置单元中创建文件关联项,而无需管理员权限,可以将其设置为在程序退出时将其删除。我更喜欢这种方式,因为也可以进行输入然后退出而不删除关联,这在我自己的计算机上很有用(有关更高级用法的说明位于program文件夹中的某个文件中)。它的工作方式还允许您为文件类型定义图标。当您下载该程序时,存档文件的密码在文件名中。

使用AutoIt和AutoHotkey制作的程序有时会被反病毒程序标记为病毒,因为使用它们来制作病毒,但是这些程序是完全安全的。



下载链接已损坏。知道在哪里可以找到工作副本吗?
Keyslinger

不幸的是,从Windows 8开始,此解决方案不再起作用
Stevoisiak

5

这是我使用的,可能会过于复杂:

  • USB驱动器上有一个批处理文件,该文件将其文件夹映射到Q:或另一个驱动器号(subst Q: "%~dp0"基本上)
  • 将便携式浏览器与自定义文件关联一起使用。我使用FreeCommander;在“其他,首选项,程序”下,您可以将自定义程序设置为在文件上按F4键时打开,具体取决于扩展名。我已经映射了7z,zip,tar等。以7zip-portable为例。因此,您要做的就是将编辑器设置为Q:\7z-portable\7zportable.exe,仅此而已。

加+1可获得良好答案。但是有可能以更简单的方式做到这一点吗?或者您能否更详细地解释您的答案,有关如何/为什么将文件夹映射到`Q:`或其他驱动器?
auroranil'2

2
@ user824294我认为这可以使他保持其关联静态。他们总是去Q:\myprogram.exe而不是different_every_time:\myprogram.exe
Der Hochstapler'2

@奥利弗·萨尔茨堡:我不能说得更好。
Benoit 2012年

这是不必要的,您可以使用FreeCommander可执行文件的相对路径在FreeCommander中指定自定义文件关联,这意味着它们完全可以适应驱动器号的更改。您根本不需要批处理文件。
Duarte Farrajota Ramos

3

您可以在批处理脚本(.bat)中使用标准的assoc命令来保存,设置和重置文件关联。

assoc命令可以在命令提示符(cmd)中显示和关联:

图片1

该命令还可以设置文件关联:

image2

您可以在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时,结果示例如下:

image3


1
太棒了 但是,您可以验证它不需要管理员权限吗?如果不是,则为+50。
auroranil

抱歉,我正在禁用UAC的情况下进行测试。assoc确实需要管理员权限。
harrymc

我将删除它,除了它可能仍然对某人有用。不要打扰。
harrymc

3

我假设您使用的是PortableApps.com打包的软件。在等待实现文件关联时Xenon Portable可能是最简单的解决方案。

您可以使用GUI来管理文件关联...

设定

编辑

或者您可以编辑XenonPortable\Data\settings\assoc.ini配置文件。

格式如下:

[<extension>]
icon=<image>.ico
exe=|XEDIR|\<path>

哪里<path>是相对XenonPortable目录。



1

如paradroid所述,以前您可以使用eXpresso(或现已停用)或PortableFileAssociator之类的应用来解决此问题。不幸的是,从Windows 8开始,不再可以临时设置文件关联。

正如John T. Haller解释的-PortableApps.com的创建者

Windows 8、8.1和10不允许应用调整文件关联,然后再按照我们为Windows XP / Vista / 7开发时计划的方式重新设置它们。关联必须通过操作系统进行,并提示用户进行更改。这是设计使然,因此,应用程序无法在未经您许可的情况下窃取关联,例如将自己设置为默认浏览器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.