使用TortoiseSVN 提交檔案的時候,有一個bat檔案,想用記事本開啟,選擇開啟檔案,用記事本開啟,
以後bat檔案 雙擊直接變成記事本了,網上說的關聯修複根本不管作用,因為註冊表 batfile和.bat即使刪除了
這個檔案關聯也不發生變化,說明,檔案關聯的登錄機碼目不在HKEY_CLASSES_ROOT 跟下,而是在別的地方。
怎麼知道究竟是哪裡的問題呢?
建立立一個使用者,然後測試 test.bat 是否正常,結果:正常。
登出,切換回原來的使用者。
進入c:\Users\新使用者\ 對 NTUSER.DAT 檔案執行以下操作 【&RegFile 轉換為 reg檔案】
cmd /k reg load HKLM\1_%FileNames% %FileNames% & reg Export HKLM\1_%FileNames% 1_%FileNames%.reg & reg unload HKLM\1_%FileNames% & cmd /k
對%FileNames% 進行替換即可,因為我是用的是Open++,設定的很方便。
結果匯出一個reg檔案:1_NTUSER.DAT.reg
開啟搜尋.bat
[HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat][HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\OpenWithList][HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\OpenWithProgids]"batfile"=hex(0):[HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt][HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithList]"a"="notepad++.exe""MRUList"="a"[HKEY_LOCAL_MACHINE\1_NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithProgids]"Notepad++_file"=hex(0):
看到沒,這就是使用者的檔案管理 註冊表地址。而非前面的在HKEY_CLASSES_ROOT,在HKEY_CLASSES_ROOT是系統全域的登錄機碼
使用者的就被載入到了其他的地方。而這裡的註冊表才是管用,所以換了使用者,登錄機碼被重新從 NTUSER.DAT 載入到註冊表,結果就不一樣了。
好了,知道了問題在哪裡,進入自己的註冊表的這個位置,將這個登錄機碼 刪除或修改成上面的樣子,然後 確認 系統註冊表ROOT下的檔案關聯是正確的:
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\.bat]@="batfile"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\open\command]@="\"%1\" %*"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\batfile\shell\edit\command]@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4e,00,4f,00,\54,00,45,00,50,00,41,00,44,00,2e,00,45,00,58,00,45,00,20,00,25,00,31,00,00,\00
這樣,bat檔案就恢複了關聯。
順便把 有問題的bat貼上來:
Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat][HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\OpenWithList]"a"="NOTEPAD.EXE""MRUList"="cab""b"="DEPENDS 1.0.EXE""c"="WinRAR.exe"[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\OpenWithProgids]"batfile"=hex(0):"cmdfile"=hex(0):"bat_auto_file"=hex(0):[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.bat\UserChoice]"Progid"="Applications\\cmd.exe"
上面的可是有問題的哦 userChoice變成了cmd 怪不得 一直開啟都不是bat,而是程式