Batch file SendTo文件夹的7zip SFX批处理

Batch file SendTo文件夹的7zip SFX批处理,batch-file,7zip,sendto,Batch File,7zip,Sendto,这就是我目前所拥有的批处理文件,如果我将一个文件或文件夹拖放到批处理文件上,我会得到一个与原始文件同名的7zip SFX超压缩文件。但这仅在文件与批处理文件位于同一文件夹中时有效 我试图实现的是,将此批处理文件放入sendto文件夹,这样我就可以将任何位置的文件转换为高度压缩的exe,它显示在原始目录的文件夹中 任何帮助都将不胜感激,我相信这很简单,但我一点也不知道 5月29日16:50编辑 [HKEY\U CLASSES\U ROOT*\shell\Compress To Exe] [HKEY

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

我试图实现的是,将此批处理文件放入sendto文件夹,这样我就可以将任何位置的文件转换为高度压缩的exe,它显示在原始目录的文件夹中

任何帮助都将不胜感激,我相信这很简单,但我一点也不知道

5月29日16:50编辑

[HKEY\U CLASSES\U ROOT*\shell\Compress To Exe]

[HKEY\U CLASSES\U ROOT*\shell\Compress To Exe\command] @=“\”c:\ProgramFiles\7-Zip\7z\”u-mx9-sfx-r-t7z\%1.exe\”\%1“


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

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

7z a -mx9 -sfx %1.exe %1
我的参数与你的略有不同,但你可以随意调整它们

5月29日-编辑
添加了
如果存在
代码,这样,如果向批处理文件发送
.exe
,它仍将创建自解压
.exe
,但是文件名中有
\u zip

谢谢,这很好,但仍在努力弄清楚它到底在做什么。我能找到的唯一问题是它对exe文件不起作用。还有其他方法可以改变它。压缩exe的唯一方法就是改变文件名。我将发布对代码的编辑。非常喜欢,谢谢。还创建了一个上下文菜单项只是为了好玩。将其添加到我的帖子中,建议在检查目录时将stderr重定向到nul(第2行),以避免显示错误<代码>cd/d%12>nul
@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