Win7右键"打开方式"中有两个相同的记事本选项的原因和解决方法
原因分析:
因为在我们系统windows文件夹(C:/Windows)和system32文件夹(C:/Windows/System32)下面各有一个 notepad.exe程序,系统在注册应用程序和文件关联打开方式的时候,分别使用了它们,但是打开方式又要读取这两个地方,所以就出现两个记事本了。
解决方法:
1、首先创建批处理,用来处理这个问题,把里面的代码复制粘贴到文本文件,保存为后缀.bat的文件,执行就可以了。
@echo off
if exist “%systemroot%/notepad.exe” set Npath=“%systemroot%/notepad.exe %”1
if not exist “%systemroot%/notepad.exe” set Npath=“%systemroot%/system32/notepad.exe %”1
reg add “HKCR/txtfile/shell/open/command” /ve /d %Npath% /t REG_SZ /f
reg add “HKCR/Applications/notepad.exe/shell/open/command” /ve /d %Npath% /t REG_SZ /f
reg add “HKCR/SystemFileAssociations/text/shell/open/command” /ve /d %Npath% /t REG_SZ /f
2、然后就可以解决右键选择打开方式中出现两个记事本选项了。
命令简单介绍:
if exist “%systemroot%/notepad.exe” set Npath=“%systemroot%/notepad.exe %”1
这句话是设置一个变量: Npath=“%systemroot%/notepad.exe %”1,这个变量将写入注册表。
%1 表示参数
比如你想打开1.txt,就是用 命令:notepad 1.txt搞定。
这个方法算是解决了txt后缀文件打开方式出现两个文件夹的问题。
总结:
我们在设置txt后缀打开类型的时候,
设置了HKEY_CLASSES_ROOT/SystemFileAssociations/text/shell/open/command=%systemroot%/notepad.exe
这就导致text类型直接映射到c:/Windows/notepad.exe
这时候包括ini文件inf文件在内的所有PerceivedType=text的文件类型映射到了c:/Windows/notepad.exe。
ini,inf文件的打开类型已经映射到了c:/Windows/System32/notepad.exe
这时候就会右键打开---出现两个记事本选项。。
解决的根本之道就是,将HKEY_CLASSES_ROOT/SystemFileAssociations/text/shell/open/command=%systemroot%/System32/notepad.exe
请使用命令:
@echo off
set Npath=“%systemroot%/system32/notepad.exe %”1
reg add “HKCR/txtfile/shell/open/command” /ve /d %Npath% /t REG_SZ /f
reg add “HKCR/Applications/notepad.exe/shell/open/command” /ve /d %Npath% /t REG_SZ /f
reg add “HKCR/SystemFileAssociations/text/shell/open/command” /ve /d %Npath% /t REG_SZ /f
最后我们看看所谓的ini文件: