2014-01-20 84 views

回答

3

Here's my investigation over the topic

由於只需使用assoc命令將無法正常工作。我使用重命名與蝙蝠擴展。還有的還是房間的形式改進文件(如臨時文件可以刪除)臨時文件,但是是唯一的我發現用不同的擴展名製作文件的方式就像/ bat/cmd一樣。這不會編輯%PATHEXT%,所以如果你想在沒有擴展名的情況下調用這些wiles,你需要自己編輯。

首先創建一個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\" %*" 
+1

這如果批處理文件依賴於其目錄作爲其當前工作目錄,將無法正常工作。 –

相關問題