close

echo

REGedit_EXT.BAT  V1.1   副檔名程式關聯登錄器



@echo off
if not "%1"=="" goto skip
cls
echo *
echo REGedit_EXT.BAT  V1.1   副檔名程式關聯登錄器       (2013/05/02)
echo *
echo author :   Mike Wang           
echo Blog   :  http://blog.xuite.net/tools241/blog
echo 用法1 :  在任意 "資料夾" 執行本批次檔(自行輸入) : REGedit_EXT.BAT
echo 用法2 :  在 "應用程式" 所在之 "資料夾" 執行本批次檔
echo CALL REGedit_EXT.BAT  應用程式路徑(.表示目前) 應用程式名(不含.EXE)  要建立關聯的副檔名  圖標檔檔名  產生的REG檔檔名(可省略)

echo ********
echo USAGE1  : regedit_ext.bat
echo USAGE2  : regedit_ext  Application_path App_name   extension   ICOfile   REGfile
echo Example1: regedit_ext.bat  .  PotPlayerMini   F4V  PotIcons.dll,0   f4v.REG
echo Example2: regedit_ext.bat  .  WordReader  DOCX  DOCX.ico  docx.REG
echo ********
echo *
if "%1"=="" echo 請輸入應用程式完整路徑(example: D:\WordReader )
if "%1"=="" SET /P c_d=Application_path:
:skip
if not "%1"=="" set c_d=%1
if "%c_d%"=="." set c_d=%cd%

if not "%2"=="" set Application_name=%2
if "%2"=="" SET /P Application_name=請輸入應用程式名(不含.EXE, example: WordReader ) Application_name:

if not "%3"=="" set ext=%3
if "%3"=="" SET /P ext=請輸入要建立關聯的副檔名( example: DOCX ) extension:

if "%4"=="" SET /P ico=請輸入圖標檔檔名(若按Enter則命名為%ext%.ico) ICOfilename:
if not "%4"=="" SET ico=%4
if "%ico%"=="" set ico=%ext%.ico

if "%1"=="" SET /P reg=產生的 *.REG 檔檔名(若按Enter則不留檔) REGfilename:
if not "%5"==""   set reg=%5
if  "%reg%"==""  set reg=tmp.reg



REM   get    app_PATH , :
for /f "tokens=1 delims=\" %%i in ("%c_d%") do set app_PATH=%%i
for /f "tokens=1,2 delims=\" %%i in ("%c_d%") do set j=%%j
if not "%j%"=="" set app_PATH=%app_PATH%\\%j%
for /f "tokens=1,2,3 delims=\" %%i in ("%c_d%") do set j=%%k
if not "%j%"=="" set app_PATH=%app_PATH%\\%j%
for /f "tokens=1,2,3,4 delims=\" %%i in ("%c_d%") do set j=%%l
if not "%j%"=="" set app_PATH=%app_PATH%\\%j%
for /f "tokens=1,2,3,4,5 delims=\" %%i in ("%c_d%") do set j=%%m
if not "%j%"=="" set app_PATH=%app_PATH%\\%j%
for /f "tokens=1,2,3,4,5,6 delims=\" %%i in ("%c_d%") do set j=%%n
if not "%j%"=="" set app_PATH=%app_PATH%\\%j%
for /f "tokens=1,2,3,4,5,6,7 delims=\" %%i in ("%c_d%") do set j=%%o
if not "%j%"=="" set app_PATH=%app_PATH%\\%j%
for /f "tokens=1,2,3,4,5,6,7,8 delims=\" %%i in ("%c_d%") do set j=%%p
if not "%j%"=="" set app_PATH=%app_PATH%\\%j%
for /f "tokens=1,2,3,4,5,6,7,8,9 delims=\" %%i in ("%c_d%") do set j=%%q
if not "%j%"=="" set app_PATH=%app_PATH%\\%j%


echo Windows Registry Editor Version 5.00 > "%reg%"

echo [HKEY_CLASSES_ROOT\.%ext%]  >> "%reg%"
echo @="%Application_name%.%ext%"  >> "%reg%"

echo [HKEY_CLASSES_ROOT\%Application_name%.%ext%]  >> "%reg%"
echo @="%Application_name%"  >> "%reg%"

echo [HKEY_CLASSES_ROOT\%Application_name%.%ext%\DefaultIcon]  >> "%reg%"
echo @="%app_PATH%\\%ico%"  >> "%reg%"

echo [HKEY_CLASSES_ROOT\%Application_name%.%ext%\shell]  >> "%reg%"

echo [HKEY_CLASSES_ROOT\%Application_name%.%ext%\shell\open]  >> "%reg%"

echo [HKEY_CLASSES_ROOT\%Application_name%.%ext%\shell\open\command]  >> "%reg%"
echo @="%app_PATH%\\%Application_name%.exe   %%1"  >> "%reg%"

if not "%reg%"=="" if exist %cd%\%reg%      REGEDIT.EXE  /S   %cd%\%reg%
if not "%reg%"=="" if not exist %cd%\%reg% REGEDIT.EXE  /S   %reg%

if "%reg%"=="tmp.reg"  del %reg%


REM  載點( 使用於WINDOWS ): https://sites.google.com/site/toolsdn/dn/REGedit_EXT.rar
REM  載點( 使用於Noname XPE ):https://sites.google.com/site/toolsdn8/dn/REGedit_EXT.WIM.rar

REM  在 REGedit_EXT.bat 之中利用 for 來將程式執行的資料夾名稱中  '\' 分解後再重組改成 '\\' 再產生 *.REG
REM  在 unix/linux 可利用 sed.exe , tr.exe 等命令來完成 :
REM 如何利用 仿unix命令 sed 一次替換文字中的 "某些相似性的字串"  :
REM  利用 sed.exe 將 C:\Windows\System32  轉成 C:\\Windows\\System32
REM  echo  C:\Windows\System32  | sed.exe  -e "s/\\/\\\\
/



REM 您可能對此篇文章有興趣 :
REM Word Reader 6.24  繁體/簡體/英文 等7國語言 免安裝版 (freeware)  :
REM  http://blog.xuite.net/tools241/blog/108046306








arrow
arrow
    全站熱搜

    tools241 發表在 痞客邦 留言(0) 人氣()