为什么我的 Windows 用记事本打开 CSS 文件?

Gqq*_*big 7 file-extension

在 CMD 我得到这个:

C:\>assoc .css
.css=CSSfile

C:\>ftype CSSfile
File type 'CSSfile' not found or no open command associated with it.
Run Code Online (Sandbox Code Playgroud)

但是在资源管理器中,CSS 文件有图标,我可以双击并使用记事本打开它。为什么我的 Windows 用记事本打开 CSS 文件?

我不是问如何用某些程序打开文件。我问为什么 .css 文件与记事本相关联,因为“找不到文件类型‘CSSfile’或没有与之关联的打开命令” ftype 命令告诉。

Dav*_*ill 7

为什么我的 Windows 用记事本打开 CSS 文件?

右键单击 CSS 文件,然后单击“打开方式”>“选择默认程序...”

您将看到默认程序设置为“记事本”:

enter image description here

如果您愿意,可以使用此对话框更改默认应用程序。

在注册表中,键的HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.cssPerceivedType设置为text

enter image description here

警告:

  • 请勿修改此条目。提到它只是为了解释为什么记事本是默认程序。

记事本是打开文本文件的默认应用程序。

您可以cmd通过键入名称在shell 中打开 css 文件,它也会在记事本中打开:

enter image description here


为什么记事本是打开文本文件的默认应用程序?

如果我有 VIM,我如何使 VIM 成为 PerceivedType 为文本的扩展的默认应用程序?

记事本被注册为要对感知类型文本文件执行的命令。

要更改命令以vim编辑下面描述的注册表值并替换%SystemRoot%\system32\NOTEPAD.EXEvim.exe.

注册感知类型

感知类型的注册表值定义为 HKEY_CLASSES_ROOT\SystemFileAssociations注册表子项的子项。

例如,感知类型文本注册如下:

HKEY_CLASSES_ROOT
   SystemFileAssociations
      text
         shell
            edit
               command
                  (Default) = "%SystemRoot%\system32\NOTEPAD.EXE" "%1"
            open
               command
                  (Default) = "%SystemRoot%\system32\NOTEPAD.EXE" "%1"
Run Code Online (Sandbox Code Playgroud)

文件类型的感知类型通过PerceivedType在文件类型的子项中包含一个值来表示 。该PerceivedType 值设置为在HKEY_CLASSES_ROOT\SystemFileAssociations注册表子项下注册的感知类型的名称 ,如前面的注册表示例中所示。

例如,要将 .cpp 文件声明为感知类型“文本”,请添加以下注册表项:

HKEY_CLASSES_ROOT
   .cpp
      PerceivedType = text
Run Code Online (Sandbox Code Playgroud)

应用注册