草庐IT

windows - 2018年4月更新后,如何在Windows 10上将 “default App”的文件扩展名设置为 “.exe”

coder 2024-06-20 原文

我花了很长时间研究这个。大多数解决方案发布于2018年4月之前,涉及通过“设置”逐步进入“按文件类型选择默认应用”的方法。

Choose default Apps by file type

在先前尝试将应用程序分配给“.rex”的过程中,我设法将其分配给记事本。 (当时,我找不到在C:驱动器上找到“.exe”的任何方法。)

如您所见,如果单击.rex扩展名旁边的记事本,则唯一的选择是转到“应用程序商店”。

和预期的一样,如果您单击App Store,将找不到任何内容...

App store - no app's found.

因此,从我在2018年4月之前在多个论坛上阅读的内容来看,Windows 10仍然可以通过“浏览硬盘驱动器”找到“.exe”。 (就像在旧版Windows中一样。)在2018年4月进行了一些更新之后,该功能不再存在。

在2018年4月的POST中,是否有人找到一种将文件扩展名分配给硬盘驱动器上的“.exe”的方法?

最佳答案

我认为这个问题更适合SuperUser(好吧,除非您想通过程序来完成它:))。

无论如何,这是从控制台(cmd)进行操作的一种方式。我在1或2年前尝试过,现在才尝试过,因此无论Win(10)版本如何,它都可以工作。从头开始该过程:

  • 打开命令提示符窗口。创建一个操作系统不知道的新文件。我选择了扩展名 .zzz :

    e:\Work\Dev\StackOverflow\q052008516>ver
    
    Microsoft Windows [Version 10.0.17134.228]
    
    e:\Work\Dev\StackOverflow\q052008516>dir /b
    
    e:\Work\Dev\StackOverflow\q052008516>:: Create a dummy .zzz file
    e:\Work\Dev\StackOverflow\q052008516>echo Some dummy text>file.zzz
    
    e:\Work\Dev\StackOverflow\q052008516>dir /b
    file.zzz
    


  • 尝试从文件浏览器中打开文件(DblClick)(无关紧要,但我使用Total Commander),或在cmd中键入其名称。这将产生可怕的对话框:



  • 创建一个新的文件类型并将其扩展名与之关联。 [MS.Docs]: assoc实用程序用于完成这项工作。首先,检查这种关联是否还不存在:

    e:\Work\Dev\StackOverflow\q052008516>:: No output means no association
    e:\Work\Dev\StackOverflow\q052008516>assoc | findstr ".zzz"
    
    e:\Work\Dev\StackOverflow\q052008516>:: Same command for a different extension
    e:\Work\Dev\StackOverflow\q052008516>assoc | findstr ".txt"
    .dic=txtfile
    .exc=txtfile
    .log=txtfile
    .scp=txtfile
    .txt=txtfile
    .wtx=txtfile
    
    e:\Work\Dev\StackOverflow\q052008516>:: Create a new FileType (ZZZFile) and associate our extension with it
    e:\Work\Dev\StackOverflow\q052008516>assoc .zzz=ZZZFile
    .zzz=ZZZFile
    
    e:\Work\Dev\StackOverflow\q052008516>assoc | findstr ".zzz"
    .zzz=ZZZFile
    


    尝试打开文件时没有更改。


  • 将文件类型(上一步中的 ZZZFile )与命令关联。对任务使用[MS.Docs]: ftype工具。再次,检查文件类型是否尚未关联(这仅在上一步之前存在文件类型时才有意义):

    e:\Work\Dev\StackOverflow\q052008516>:: As usual, no output means no association
    e:\Work\Dev\StackOverflow\q052008516>ftype | findstr ZZZFile
    
    e:\Work\Dev\StackOverflow\q052008516>:: Same thing for txtfile
    e:\Work\Dev\StackOverflow\q052008516>ftype | findstr txtfile
    txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
    
    e:\Work\Dev\StackOverflow\q052008516>:: Associate ZZZFile with notepad
    e:\Work\Dev\StackOverflow\q052008516>ftype ZZZFile=%SystemRoot%\system32\notepad.exe %1
    ZZZFile=C:\WINDOWS\system32\notepad.exe %1
    
    e:\Work\Dev\StackOverflow\q052008516>ftype | findstr ZZZFile
    ZZZFile=C:\WINDOWS\system32\notepad.exe %1
    


  • 尝试再次打开文件(从cmd),然后瞧瞧:



  • 概要:

    为了使用带有.zzz扩展名的notepad.exe文件打开,只有仅需要从整个过程中记住两个命令(而且很长):
  • assoc .zzz=ZZZFile
  • ftype ZZZFile=%SystemRoot%\system32\notepad.exe %1

  • 注释:
  • 我的用户具有( super )管理权限,但是我想他们应该不会对操作的执行位置(cmd或UI(如果可能))有所不同,换句话说,那些没有必需权限的用户赢得了不管他们会尝试
  • 都无法做到
  • 显然,关于这个话题有一个(非常暗的)星云,我的知识还无法“破译”。在我的示例中,我不断将 .zzz 结果与 .txt 进行比较。还有一个大惊喜:尽管上面输出了
  • ,但Notepad ++和而不是记事本用于打开 txtfile (仅 .txt )

    @ EDIT0 :

    我对.txt之谜做了更多的挖掘。事实:
  • ftype将记事本显示为打开程序
  • 实际上由Notepad ++(在cmd和PS中)打开
  • 在“按文件类型选择默认应用程序”中,显示记事本++

  • 因此,显然,它不仅仅令人眼前一亮(多年来,我习惯了MS的做事方式,在某些情况下似乎是这样(但也许是我没有掌握所有的一切)ilogic)。
    我还发现了许多资源,例如:
  • [MS.Technet.Blogs]: Windows 10 – How to configure file associations for IT Pros?提到命令:

    dism /online /export-defaultappassociations:"file.txt"
    
  • [XDADevelopers]: Programatically set default file associations提到了reg键:
  • HKCU \软件\ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ $ {EXT}
  • HKCR \ $ {EXT}

  • 我在任何地方都找不到关于如何选择可执行文件来运行具有特定扩展名的文件的清晰算法。我可以认为上面的2个键已查询,但我100%肯定还有更多。更不用说对于 .py 文件,我遇到了一个甚至更陌生的问题(对于Win 10的普通用户):
  • ftype(和assoc)报告了上面所有内容
  • 在“按文件类型选择默认应用程序”中,显示了Python(就像在我的 super 管理员用户的情况下一样)
  • 尝试从cmd运行文件,在
  • 开头出现对话框
  • 从PS
  • 开始工作

    可悲的是,在查看reg键之前(现在可以使用),我从对话框中选择了Python,因此我无法再进行任何调试(而且切换用户也很烦人)。

    可能相关:
  • [SuperUser]: Windows 10 won't let me set default apps for file extensions
  • [SuperUser]: Can't change Windows 10 default file type association
  • [SuperUser]: SSMS wont give up file associations
  • 关于windows - 2018年4月更新后,如何在Windows 10上将 “default App”的文件扩展名设置为 “.exe”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52008516/

    有关windows - 2018年4月更新后,如何在Windows 10上将 “default App”的文件扩展名设置为 “.exe”的更多相关文章

    1. ruby - 如何在 Ruby 中顺序创建 PI - 2

      出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

    2. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

      我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

    3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

      如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

    4. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

      我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

    5. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

      exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

    6. ruby - 如何在续集中重新加载表模式? - 2

      鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

    7. ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式? - 2

      我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"

    8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

      我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

    9. ruby-on-rails - 如何在 ruby​​ 交互式 shell 中有多行? - 2

      这可能是个愚蠢的问题。但是,我是一个新手......你怎么能在交互式ruby​​shell中有多行代码?好像你只能有一条长线。按回车键运行代码。无论如何我可以在不运行代码的情况下跳到下一行吗?再次抱歉,如果这是一个愚蠢的问题。谢谢。 最佳答案 这是一个例子:2.1.2:053>a=1=>12.1.2:054>b=2=>22.1.2:055>a+b=>32.1.2:056>ifa>b#Thecode‘if..."startsthedefinitionoftheconditionalstatement.2.1.2:057?>puts"f

    10. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

      我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

    随机推荐