我正在尝试将.svg
要打开的文件与 Inkscape关联inkview.exe
。无法通过常规方法执行此操作,因此我尝试使用命令行。我做了以下操作:
跑了
assoc .svg=
,assoc .svgz=
跑了
ftype svgfile=
,ftype avgzfile=
跑了
assoc .svg=svgfile
,assoc .svgz=svgzfile
现在当我运行时我分别得到
assoc .svg
和assoc .svgz
.svg=svgfile
.svgz=svgzfile
- 我跑了
ftype svgfile="path\to\inkview.exe" %1
,也一样svgzfile
- 现在当我跑步时
ftype svgfile
我得到svgfile="path\to\inkview.exe" %1
- 但当我检查文件资源管理器时,我发现这些文件与 Internet Explorer 相关联!!!
如果您能帮助我了解问题是什么以及如何解决,我将不胜感激。
答案1
我找到了针对 Win10 的解决方案,可以解释为什么有时assoc
会被忽略并且似乎不执行任何操作。
所以我试图将.webm
文件与关联ffplay.exe
。因此,我在 CMD 中输入了以下内容:
ftype ffplay.webm="C:\Program Files\ffmpeg\bin\ffplay.exe" -hide_banner -loop -1 "%1"
assoc .webm=ffplay.webm
尽管我确信上述两个命令确实永久设置了我指定的这两个值,但当我双击任何文件时,这些值似乎被忽略了。Windows 不会使用打开我的文件,webm
而是继续使用我几个月前通过Windows 设置界面设置的应用程序。ffplay.exe
webm
default apps
因此,我接下来开始regedit.exe
仔细检查,结果确实如预期般完成了它们的工作,因为在注册表中创建了以下条目ftype
:assoc
[HKEY_CLASSES_ROOT\.webm]
@="ffplay.webm"
[HKEY_CLASSES_ROOT\ffplay.webm\Shell\Open\Command]
@="\"C:\\Program Files\\ffmpeg\\bin\\ffplay.exe\" -hide_banner -loop -1 \"%1\""
但出于某种原因,Windows 忽略了这些设置。事实证明,原因是如果在注册表中的不同位置为同一扩展设置了不同的键,并且该位置在中,则显然Windows 10
会忽略上述注册表项(由assoc
和设置) ,在我的情况下是:ftype
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.webm\UserChoice]
"ProgId"="Applications\\VLC.WEBM"
因此,为了解决所有这些问题,我要做的就是删除与之关联的以下键.webm
及其所有子条目:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.webm]
一旦删除了它,Windows 现在终于可以使用我告诉它使用的程序assoc
了ftype
;也不需要重新启动!虽然回复可能很晚,但我希望这能帮助一些遇到同样问题的人。
答案2
尝试用引号标记 %1 ->ftype svgfile="path\to\inkview.exe" "%1"
刚刚遇到了同样的问题,这个已经解决了。