无法更改从 cmd 打开文件的默认程序

无法更改从 cmd 打开文件的默认程序

有一次我想,如果我用 cmd 打开 CPP 文件会发生什么。我认为它的工作方式与typecmd 中的命令类似,但当我意识到事实并非如此时,我想从 cmd 更改默认程序。但我无法改变这一点。我在 Google 上搜索,并尝试了三种不同的方法来更改程序,但我无法更改它。以下是我的三种方法:-

1.我右键单击该文件,然后选择Open with -> choose default programalways use the selected program to open this file选择。

  1. 我右键单击该文件然后选择properties,但发现没有更改按钮。

  2. 然后我Default programs -> associate a file type or protocol with a program选择了 .cpp 扩展名,但当我单击更改按钮时,它always use the selected program to open this file未被选中。

现在,有人能告诉我如何从默认程序更改此程序吗?因为当我想打开这个 .cpp 文件时,它总是用 cmd 打开,而我不想用 cmd 打开这个程序。我也不想Open with -> Notepad每次想用记事本打开这个文件时都去那里。

答案1

您应该能够使用assocftype按照@Stephan的建议。运行CMD.EXE(以管理员身份)。这应该在文件扩展名和新文件类型(Notepad 或 notepad++)之间建立新的关系:

ASSOC .cpp=MyCPP
ftype MyCPP="%SystemRoot%\system32\NOTEPAD.EXE" "%1"

ftype MyCPP="C:\Program Files\Notepad++\notepad++.exe" "%1"

只需输入ftype即可打印一个长列表,可能已经有一个合适的 ftype 名称可在 assoc 中使用,例如这个:

ASSOC .cpp=txtfile

答案2

您可以使用以下方法执行此操作Reg Add也...

@echo off && setlocal EnableDelayedExpansion

for %%i in (C:\Windows\System32\notepad.exe,C:\Windows\notepad.exe
  )do if exist "%%~i" set "_path_notepad=%%~i" && goto :regadd 

:regadd
2>nul (

"%__APPDIR__%reg.exe" add "HKCU\Software\Classes\.cpp" /ve /d "cppfile" /f
"%__APPDIR__%reg.exe" add "HKCU\Software\Classes\cppfile" /ve /d "C++ Code File" /f
"%__APPDIR__%reg.exe" add "HKCU\Software\Classes\cppfile\shell\open\command" /ve /d "\"!_path_notepad:\=\\!\" \"%%v\"" /f

) >nul && endlocal || (endlocal && echo/Something is very wrong here^!!) & %__APPDIR__%timeout.exe -1

观察:1您可能需要使用管理员凭据运行此程序,以管理员身份运行它

观察:2这是另一个答案的改编,作者不是我

相关内容