我想要在扩展程序.btm
中添加太多,就像批处理文件一样,是否有任何方式,我可以将其永久添加到我的注册表中?< / p>
答案 0 :(得分:3)
Here's my investigation over the topic
由于简单地使用assoc不起作用。我使用临时文件重命名带有bat扩展名的文件。还有房间形式改进(例如临时文件可能被删除),但这是我找到的唯一方法使用不同的扩展名创建一个像/ bat / cmd一样的文件。这不会编辑%PATHEXT%,所以如果你想在没有扩展名的情况下调用这些文件,你需要自己编辑。
首先创建一个如下所示的bat
文件:
@echo off
copy "%~nx1" "%temp%\%~nx1.bat" /Y >nul
"%temp%\%~nx1.bat" %2
并将其另存为"%ProgramFiles%\caller\caller.bat"
然后创建一个这样的.bat
文件并以管理员身份运行:
Windows Registry Editor Version 5.00
;REM
;REM -------- THIS IS INSTALLMENT PART --------
;REM
;@ECHO OFF
;CLS
;BREAK
;BREAK -- CREATING THE EXTENSION CALLER
;BREAK
;
;echo @echo off > %temp%\caller.temp
;echo copy "%%~nx1" "%%temp%%\%%~nx1.bat" /Y ^>nul >>%temp%\caller.temp
;echo "%%temp%%\%%~nx1.bat" %%2>>%temp%\caller.temp
;
;md "%ProgramFiles%\caller" >nul 2>&1
;copy "%temp%\caller.temp" "%ProgramFiles%\caller\caller.bat" /Y >nul 2>&1
;
;BREAK
;BREAK -- CALLING REGEDIT
;BREAK
;
;REGEDIT.EXE /S "%~f0"
;GOTO :EOF
;
;REM
;REM -------- HERE STARTS THE REGISTRY PART --------
;REM
;this links the information for the extension to
;HKEY_CLASSES_ROOT\btmfile
[HKEY_CLASSES_ROOT\.btm]
@="cmffile"
;this is used by windows search
;it's value indicates that it contains only text
[HKEY_CLASSES_ROOT\.btm\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"
;This is the other part of the registry which is edited
;here is contained the actual information
[HKEY_CLASSES_ROOT\btmfile]
[HKEY_CLASSES_ROOT\btmfile\DefaultIcon]
@="%SystemRoot%\\System32\\imageres.dll,-68"
[HKEY_CLASSES_ROOT\btmfile\shell]
[HKEY_CLASSES_ROOT\btmfile\shell\Run]
;Unfortunately does not work with %ProgramFiles%
[HKEY_CLASSES_ROOT\btmfile\shell\Run\command]
@="\"C:\\Program Files\\caller\\caller.bat\" \"%1\" %*"