原因分析:
因為在我們系統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文件: