7zip SFX Batch For SendTo Folder

2019-05-18 10:58发布

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

This is what i have so far as a batch file, which if i drag and drop a file or folder onto the batch file i get a 7zip SFX on Ultra Compression under the same name as the original file. but this only works if the file is in the same folder as the batch file.

What im trying to achieve is, putting this batch file into the sendto folder so i can convert any file anywhere into a highly compressed exe, which appear in the folder of the original directory.

Any help would be greatly appreciated, im sure its simple but i haven't a clue.

Edit 29 May @ 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\""

add that to registry or .reg file to create a context menu button, that's parent to the sendto.

1条回答
【Aperson】
2楼-- · 2019-05-18 11:37

I use the following batch file to send a file or a folder to the Send-To shortcut, which creates a self extracting 7z file in the same location as the original file/folder:

@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

My parameters are slightly different from yours, but you can tweak them as you like.

May 29 - Edit

Added the if exist code so that if you send an .exe to the batch file, it will still create a self-extracting .exe, but with _zipped in the filename.

查看更多
登录 后发表回答