assoc-ftype 在 Windows 10 上无法正常工作

assoc-ftype 在 Windows 10 上无法正常工作

我正在尝试将.svg要打开的文件与 Inkscape关联inkview.exe。无法通过常规方法执行此操作,因此我尝试使用命令行。我做了以下操作:

  1. 跑了assoc .svg=assoc .svgz=

  2. 跑了ftype svgfile=ftype avgzfile=

  3. 跑了assoc .svg=svgfileassoc .svgz=svgzfile

  4. 现在当我运行时我分别得到assoc .svgassoc .svgz.svg=svgfile.svgz=svgzfile

  5. 我跑了ftype svgfile="path\to\inkview.exe" %1,也一样svgzfile
  6. 现在当我跑步时ftype svgfile我得到svgfile="path\to\inkview.exe" %1
  7. 但当我检查文件资源管理器时,我发现这些文件与 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.exewebmdefault apps

因此,我接下来开始regedit.exe仔细检查,结果确实如预期般完成了它们的工作,因为在注册表中创建了以下条目ftypeassoc

[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和设置) ,在我的情况下是:ftypeHKEY_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 现在终于可以使用我告诉它使用的程序assocftype;也不需要重新启动!虽然回复可能很晚,但我希望这能帮助一些遇到同样问题的人。

答案2

尝试用引号标记 %1 ->ftype svgfile="path\to\inkview.exe" "%1" 刚刚遇到了同样的问题,这个已经解决了。

相关内容