7zip SFX Batch For SendTo文件夹

时间:2013-05-28 15:15:51

标签: batch-file 7zip sendto

7z a -mx9 -sfx %1.exe %1

这就是我所拥有的批处理文件,如果我将文件或文件夹拖放到批处理文件中,我会在Ultra Compression上获得与原始文件同名的7zip SFX。但这仅在文件与批处理文件位于同一文件夹中时才有效。

我想要实现的是,将此批处理文件放入sendto文件夹,以便我可以将任何文件转换为高度压缩的exe,它出现在原始目录的文件夹中。

任何帮助将不胜感激,我确定它很简单,但我没有线索。

编辑5月29日@ 16:50

[HKEY_CLASSES_ROOT * \ shell \ Compress To Exe]

[HKEY_CLASSES_ROOT * \ shell \ Compress To Exe \ command] @ =“\”c:\ Program Files \ 7-Zip \ 7z \“u -mx9 -sfx -r -t7z \”%1.exe \“\”%1 \“”

将其添加到注册表或.reg文件以创建上下文菜单按钮,该按钮是sendto的父级。

1 个答案:

答案 0 :(得分:2)

我使用以下批处理文件将文件或文件夹发送到“发送至”快捷方式,该快捷方式在与原始文件/文件夹相同的位置创建自解压7z文件:

@echo off
cd /d %1
if %errorlevel%==1 (goto file) else (goto dir)

:dir
cd..
"c:\Program Files\7-Zip\7z" u -mx9 -sfx -r -t7z "%~n1.exe" "%~f1"
goto :EOF

:file
cd /d "%~dp1"
if exist "%~n1.exe" (
  "c:\Program Files\7-Zip\7z" u -mx9 -sfx -t7z "%~n1_zipped.exe" "%~f1"
) else (
  "c:\Program Files\7-Zip\7z" u -mx9 -sfx -t7z "%~n1.exe" "%~f1"
)
goto :EOF

我的参数与您的参数略有不同,但您可以根据需要调整它们。

5月29日 - 编辑

添加了if exist代码,这样如果您向批处理文件发送.exe,它仍然会创建一个自解压.exe,但在_zipped中文件名。