无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: rgy
打印 上一主题 下一主题

[分享] WinHex_20.4 自解压单文件版(含7zSFX和NSIS打包批处理)

    [复制链接]
61#
发表于 2021-12-3 15:49:02 | 只看该作者
你知道创建快捷方式怎么写吗?要添加很多个\,我都头晕了。
  1. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\WPS.lnk""):b.TargetPath=""%~sdp0wps.exe"":b.WorkingDirectory=""%~sdp0"":b.Save:close")
复制代码
回复

使用道具 举报

62#
 楼主| 发表于 2021-12-3 16:49:31 | 只看该作者
2010hook 发表于 2021-12-3 15:49
你知道创建快捷方式怎么写吗?要添加很多个\,我都头晕了。

现在勉强会写,之前也是绕晕了。
回复

使用道具 举报

63#
 楼主| 发表于 2021-12-3 22:01:28 | 只看该作者
2010hook 发表于 2021-12-3 10:20
你那7z压缩参数还可以更好,其中字典d=128m可以按需改大:

我重新查过帮助文档了,LZMA算法这样设置后确实要小一点点,但是LZMA2解压快啊,我还是选择默认的LZMA2!之前忽略了-myx,现在补上,最后保留结果:
  1. 7z.exe a -mx -mmt -myx
复制代码


回复

使用道具 举报

64#
 楼主| 发表于 2021-12-3 22:12:55 | 只看该作者
2010hook 发表于 2021-12-3 15:49
你知道创建快捷方式怎么写吗?要添加很多个\,我都头晕了。

你这个写得没问题啊,可以运行。
回复

使用道具 举报

65#
发表于 2021-12-3 22:39:50 | 只看该作者
rgy 发表于 2021-12-3 22:12
你这个写得没问题啊,可以运行。

我想请问你,改成7z自解压支持的形式应该怎么写?
回复

使用道具 举报

66#
 楼主| 发表于 2021-12-3 22:43:30 | 只看该作者
2010hook 发表于 2021-12-3 22:39
我想请问你,改成7z自解压支持的形式应该怎么写?

问糊涂了,具体是怎么个使用场景?
回复

使用道具 举报

67#
发表于 2021-12-3 23:14:32 | 只看该作者
rgy 发表于 2021-12-3 22:43
问糊涂了,具体是怎么个使用场景?

就是解压安装后创建桌面快捷方式。
我不是释放到Temp自动删除的。
回复

使用道具 举报

68#
 楼主| 发表于 2021-12-3 23:33:59 | 只看该作者
本帖最后由 rgy 于 2021-12-3 23:35 编辑
2010hook 发表于 2021-12-3 23:14
就是解压安装后创建桌面快捷方式。
我不是释放到Temp自动删除的。

如果是解压到D盘根目录可以这样写:
InstallPath="D:\\"
Shortcut="D,{%%T\\WPS.exe},{},{},{},{WPS},{},{},{}"

回复

使用道具 举报

69#
发表于 2021-12-3 23:42:36 | 只看该作者
rgy 发表于 2021-12-3 23:33
如果是解压到D盘根目录可以这样写:
InstallPath="D:\\"
Shortcut="D,{%%T\\WPS.exe},{},{},{},{WPS},{ ...

在哪个官方文档有这方面说明?可否提供链接?
回复

使用道具 举报

70#
发表于 2021-12-3 23:48:47 | 只看该作者
谢谢分享
回复

使用道具 举报

71#
 楼主| 发表于 2021-12-3 23:48:58 | 只看该作者
2010hook 发表于 2021-12-3 23:42
在哪个官方文档有这方面说明?可否提供链接?

就是一楼的批处理工具包种就包含有帮助文档的,还有变量大全,里面也有开源项目地址的。
回复

使用道具 举报

72#
发表于 2021-12-3 23:49:11 | 只看该作者
谢谢分享
回复

使用道具 举报

73#
发表于 2021-12-3 23:50:00 | 只看该作者
谢谢分享
回复

使用道具 举报

74#
发表于 2021-12-3 23:52:45 | 只看该作者
rgy 发表于 2021-12-3 23:33
如果是解压到D盘根目录可以这样写:
InstallPath="D:\\"
Shortcut="D,{%%T\\WPS.exe},{},{},{},{WPS},{ ...

试过不行:
Shortcut="C,{%ProgramFiles%\\Office6\\WPS.exe},{},{},{},{WPS},{},{},{}"
回复

使用道具 举报

75#
 楼主| 发表于 2021-12-3 23:59:20 | 只看该作者
本帖最后由 rgy 于 2021-12-4 13:59 编辑
2010hook 发表于 2021-12-3 23:52
试过不行:
Shortcut="C,{%ProgramFiles%\\Office6\\WPS.exe},{},{},{},{WPS},{},{},{}"

这个地方%ProgramFiles%没用的!7Zsfx识别不了批处理中的变量形式。
可以这样写
InstallPath="D:\\"
Shortcut="D,{%%T\\WPS.exe},{},{},{},{WPS},{},{},{}"

这里实际上%%T\\就等于InstallPath也就是D:\\


或者说把%ProgramFiles%换成7zsfx自己的变量参数。

评分

参与人数 1无忧币 +5 收起 理由
2010hook + 5

查看全部评分

回复

使用道具 举报

76#
 楼主| 发表于 2021-12-4 00:02:37 | 只看该作者
2010hook 发表于 2021-12-3 23:52
试过不行:
Shortcut="C,{%ProgramFiles%\\Office6\\WPS.exe},{},{},{},{WPS},{},{},{}"

还有就是“\”在7z脚本中是转义符号,所以两个\才会被解释为一个\
回复

使用道具 举报

77#
 楼主| 发表于 2021-12-4 20:09:08 | 只看该作者
2010hook 发表于 2021-12-3 23:42
在哪个官方文档有这方面说明?可否提供链接?

统一回复:
1.这个7Zsfx模块是7z官方的修改增强版,肯定是和官方不同的。我这里提供的和论坛上你能找到的几乎所有单文件打包程序中的7Zsfx模块,其实都来自一个俄罗斯人——OlegScherbakov,只是大家选用的版本不同罢了。打包好的单文件带参数 -sfxversion 运行,就可以查看所用7Zsfx模块的版本信息了。你还可以通过下面两个链接下载到这个增强版7Zsfx模块,遗憾的是这个模块早就停更了,最后更新也是在18年了。
OlegScherbakov的7Zsfx:
http://forum.oszone.net/thread-51547-172.html
https://github.com/OlegScherbakov/7zSFX
7z官方的sfx:
https://www.7-zip.org/a/lzma2106.7z
在这个目录下lzma2106\bin\7zSD.sfx

2.这里打包二合一WinHex肯定是要选用32位的模块啊,不然怎么在32位系统上运行。

3.还有就是LZMA2算法在文件损坏后的可恢复性,其实LZMA2算法是LZMA算法的升级版,LZMA2如此LZMA更是如此,在包含多个文件的压缩包中,如果其中一个文件损坏了一个字节,那这个文件就不能被解压,这个我都有实际测过!

回复

使用道具 举报

78#
发表于 2021-12-4 20:57:25 | 只看该作者
谢谢分享!!!!!!!!!!!!!!!
回复

使用道具 举报

79#
发表于 2021-12-4 21:05:47 | 只看该作者
本帖最后由 2010hook 于 2021-12-4 22:16 编辑
rgy 发表于 2021-12-4 20:09
统一回复:
1.这个7Zsfx模块是7z官方的修改增强版,肯定是和官方不同的。我这里提供的和论坛上你能找到 ...

谢谢用心回复!
我长期关注绿化,对制作程序包不熟悉。

1、sfxversion 方式真难用,我发现7-zip “内部打开#”直接就能看到文件“2”,用记事本查看就是了。

2、%SfxVarSystemPlatform% 是否可以代替 x86 / x64 这样的写法?
回复

使用道具 举报

80#
 楼主| 发表于 2021-12-4 22:29:54 | 只看该作者
2010hook 发表于 2021-12-4 21:05
谢谢用心回复!
我长期关注绿化,对制作程序包不熟悉。

我也没制作过程序包,我一般用这些东西打包单文件,或者制作一个启动器。

1.7-zip#打开配置文件很好用,原来都不知道。

2.是把%SfxVarSystemPlatform%写到前缀里吗,没这样用过,怎么感觉这样写了当没写啊,这样不管系统是32位还是64位这条命令都会被执行啊。如果前缀写x86,就只有在32位系统下这条命令才会被执行,x64同理。所以不明白这样写的用意。
回复

使用道具 举报

81#
发表于 2021-12-4 22:44:18 | 只看该作者
rgy 发表于 2021-12-4 22:29
我也没制作过程序包,我一般用这些东西打包单文件,或者制作一个启动器。

1.7-zip#打开配置文件很好用 ...

你说得对,这样写可能会执行两次。

为何你的参数传递不写这两行:
SetEnvironment="sfxcmd=\"%%S\%%M\""
SetEnvironment="sfxname=%%S\%%M"
回复

使用道具 举报

82#
 楼主| 发表于 2021-12-4 22:56:20 | 只看该作者
2010hook 发表于 2021-12-4 22:44
你说得对,这样写可能会执行两次。

为何你的参数传递不写这两行:

这两行和参数传递无关,只是设置了两个变量而已。
回复

使用道具 举报

83#
发表于 2021-12-4 23:04:37 | 只看该作者
本帖最后由 2010hook 于 2021-12-4 23:19 编辑

直接用 7zip “内部打开#”,不但可以查看sfx配置“2”,还可以直接提取“3.7z”,快捷重做,免去再次费时压缩。
回复

使用道具 举报

84#
 楼主| 发表于 2021-12-4 23:15:03 | 只看该作者
2010hook 发表于 2021-12-4 23:04
直接用 7zip “内部打开#”,不但可以查看sfx配置“2”,还可以直接提取“3.7z”,快捷重做,免去再次费时 ...

快捷重做可以有,
不过帮助文档还是要看俄文的,英文的版本太老旧,很多命令没有被收录,看了会多走些弯路!
回复

使用道具 举报

85#
 楼主| 发表于 2021-12-4 23:27:41 | 只看该作者
rgy 发表于 2021-12-4 22:56
这两行和参数传递无关,只是设置了两个变量而已。


其实命令行参数的传递,7zsfx版本不同,用法也有差异的160的版本根本不用写%SfxVarCmdLine0%或者%SfxVarCmdLine2%这些,但是170以后的版本默认只传递给第一个RunProgram命令,后面的RunProgram命令是不传递的,所以170以后的版本从第二个RunProgram命令开始要加上%SfxVarCmdLine0%或者%SfxVarCmdLine2%这些才能传递命令行参数。

回复

使用道具 举报

86#
发表于 2021-12-5 22:21:30 | 只看该作者
感谢楼主分享,收藏备用
回复

使用道具 举报

87#
发表于 2021-12-5 23:30:46 | 只看该作者
rgy 发表于 2021-12-4 23:27
其实命令行参数的传递,7zsfx版本不同,用法也有差异的160的版本根本不用写%SfxVarCmdLine0%或者%SfxVa ...

谢谢分享心得!
fnr 居然依赖.NET,那很多PE用不了,我把3行命令换成这样1行:
  1. Bin\ResHacker\rxrepl.exe -f "Bin\VersionInfo.rc" -o "%Temp%\VersionInfo.rc" -s "MyVersionInfo" -r "%MyVersionInfo%" -s "MyProductName" -r "%MyProductName%"
复制代码

评分

参与人数 1无忧币 +5 收起 理由
rgy + 5 赞一个!

查看全部评分

回复

使用道具 举报

88#
发表于 2021-12-7 20:35:58 | 只看该作者
看看
回复

使用道具 举报

89#
 楼主| 发表于 2021-12-8 20:33:21 | 只看该作者

5大给指导指导,这个你专业些
回复

使用道具 举报

90#
发表于 2021-12-9 13:28:54 | 只看该作者
他水平的确很高,不过那个单文件制作工具创建快捷图标不能运行,缺少了“起始位置(工作目录)”,有些程序需要。所以最后才下载你的打包工具。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-22 06:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表