Board logo

标题: 系统自带CHM反译功能! [打印本页]

作者: peterdocter     时间: 2007-4-19 02:35    标题: 系统自带CHM反译功能!
@echo off
title "系统自带CHM反译功能!"
echo "注意chm文件中不能存在空格!"
echo "脚本编写:PeterDocter"
echo "2007-04-18"
path %windir%;%windir%\system32
echo Decompinling...
for /f "tokens=*" %%I in ("%1") do (
rem 短小Chm文件
set Chm=%%~nxsI
rem 创建完整目录
set ChmDir=%%~nI
rem 完整路径
set ChmPath=%%~dpI
)
rem 切换到目标路径
cd /d %ChmPath%
if not exist "%chmDir%" md "%chmDir%"
rem HH 反译参数
HH.EXE -decompile %chmDir% %Chm%
echo All files in the %chmDir%!
pause
exit
想加上右击鼠标功能可惜不知道如何做?还有chm文件存在空格时就比较麻烦!看一下哪位可以优化一个代码?

Last edited by peterdocter on 2007-4-19 at 04:38 AM ]

作者: huzixuan     时间: 2007-4-19 02:40

@echo off
for %%i in (%1) do (
echo 路径: %%~dpi
echo 文件名: %%~nxi
)
pause

详请看 for /?

作者: peterdocter     时间: 2007-4-19 03:48
多谢!我已经解决!同时送上一个不用其它工具直接反译chm!
@echo off
path %windir%;%windir%\system32
echo Decompinling...
for /f "tokens=*" %%I in ("%1") do (
rem 短小Chm文件
set Chm=%%~nxsI
rem 创建完整目录
set ChmDir=%%~nI
rem 反译短小目录
set ChmDe=%%~nsI
rem 完整路径
set ChmPath=%%~dpI
)
rem 切换到目标路径
cd /d %ChmPath%
if not exist "%chmDir%" md "%chmDir%"
rem HH 反译参数
HH.EXE -decompile %ChmDe% %Chm%
echo All files in the %chmDir%!
pause
exit
很奇怪发现很多命令都要用短小路径才行!
想把它放在右击鼠标功能,不知道如何做?有相关注册表信息吗?

作者: estar     时间: 2007-4-19 04:24
貌似LS的代码写的麻烦了点~~

作者: peterdocter     时间: 2007-4-19 04:27
还有一点点问题就是如果chm文件中不存在空格就会多生成一个目录出来的!
set ChmDir=%%~nI
set Repace=%ChmDir:空格=为空%
如何写以上代码?

作者: zh159     时间: 2007-4-19 05:24
只对 chm 文件右键才出现“反译 CHM”项,不用另外再编bat文件
reg add "HKCR\chm.file\shell\反译 CHM\command" /ve /t reg_sz /d "hh.exe -decompile .\ %%1" /f


Last edited by zh159 on 2007-4-18 at 04:28 PM ]