无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 946|回复: 17
打印 上一主题 下一主题

[已解决] 如何使用NSIS设定变量$R1、$R2、$R3写入diskpart的脚本DISK.txt里面几行size=?

[复制链接]
跳转到指定楼层
1#
发表于 2024-5-28 11:57:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chen463 于 2024-5-30 09:27 编辑

上次select disk问题已解决,现在进阶处理分区大小问题,敬请大家提供NSIS相关语法运用,感谢!

1. 如何使用NSIS设定变量$R1、$R2、$R3修改写入diskpart的脚本DISK.txt里面几行size=?。
2. 设定变量$R1修改size=300。变量$R2修改size=100。变量$R3修改size=128

DISK.txt内容:

select disk 5
clean
convert gpt
create partition primary size=300
format quick fs=ntfs label="Windows RE tools"
assign letter="T"
create partition efi size=100
rem == Note: for Advanced Format Generation One drives, change to size=260.

format quick fs=fat32 label="System"
assign letter="S"
create partition msr size=128
create partition primary
format quick fs=ntfs label="Windows"
assign letter="W"
............
感谢N大提供修改脚本源码!
运用diskpart脚本自动执行制作U盘分区




2#
发表于 2024-5-28 14:56:54 来自手机 | 只看该作者
上次不是都跟你说了,用NSIS生成这个文件,所有问题迎刃而解,而不是修改现成的,简单的问题为何非要用复杂的解决方法。

还有一种方法,bat写好,用参数调用。

点评

因为要调用多个脚本,制作U盘多个分区,内容不一样呀!才这么费工。  详情 回复 发表于 2024-5-28 18:19
回复

使用道具 举报

3#
发表于 2024-5-28 16:16:48 | 只看该作者
我看看
回复

使用道具 举报

4#
 楼主| 发表于 2024-5-28 18:19:55 | 只看该作者
nttwqz 发表于 2024-5-28 14:56
上次不是都跟你说了,用NSIS生成这个文件,所有问题迎刃而解,而不是修改现成的,简单的问题为何非要用复杂 ...

因为要调用多个脚本,制作U盘多个分区,内容不一样呀!才这么费工。

点评

那就多生成几个  详情 回复 发表于 2024-5-28 21:15
回复

使用道具 举报

5#
发表于 2024-5-28 21:15:09 来自手机 | 只看该作者
chen463 发表于 2024-5-28 18:19
因为要调用多个脚本,制作U盘多个分区,内容不一样呀!才这么费工。

那就多生成几个

点评

已经多生成几个脚本使用测试中,但是还缺少size=变量,等等时间网络搜寻多行修改写入就完美了。  详情 回复 发表于 2024-5-28 21:49
回复

使用道具 举报

6#
 楼主| 发表于 2024-5-28 21:49:03 | 只看该作者
nttwqz 发表于 2024-5-28 21:15
那就多生成几个

已经多生成几个脚本使用测试中,但是还缺少size=变量,等等时间网络搜寻多行修改写入就完美了。

点评

size=$R1即可  详情 回复 发表于 2024-5-28 22:50
回复

使用道具 举报

7#
发表于 2024-5-28 22:50:54 来自手机 | 只看该作者
chen463 发表于 2024-5-28 21:49
已经多生成几个脚本使用测试中,但是还缺少size=变量,等等时间网络搜寻多行修改写入就完美了。

size=$R1即可
回复

使用道具 举报

8#
发表于 2024-5-28 23:23:13 | 只看该作者
  1. Section
  2.     SetOutPath "$TEMP"
  3.     FileOpen $R0 "disk.txt" w
  4.     FileWrite $R0 '\
  5.         select disk $R1$\r$\n\
  6.         clean$\r$\n\
  7.         convert gpt$\r$\n\
  8.         create partition primary size=$R2$\r$\n\
  9.         format quick fs=ntfs label="Windows RE tools"$\r$\n\
  10.         assign letter="T"$\r$\n\
  11.         create partition efi size=$R3$\r$\n\
  12.         rem == Note: for Advanced Format Generation One drives, change to size=260.$\r$\n\
  13.         $\r$\n\
  14.         format quick fs=fat32 label="System"$\r$\n\
  15.         assign letter="S"$\r$\n\
  16.         create partition msr size=$R4$\r$\n\
  17.         create partition primary$\r$\n\
  18.         format quick fs=ntfs label="Windows"$\r$\n\
  19.         assign letter="W"$\r$\n'
  20.     FileClose $R0
  21. SectionEnd
复制代码


点评

FileClose $R0 此句柄无法通过编辑,似乎上面还需要命令, 如果可以整个脚本来输出,那最好不过了。不过需要注意断行,否则不被diskpart接受。  详情 回复 发表于 2024-5-29 08:21
回复

使用道具 举报

9#
 楼主| 发表于 2024-5-29 08:21:47 | 只看该作者

FileClose $R0
此句柄无法通过编辑,似乎上面还需要命令,

如果可以整个脚本来输出,那最好不过了。不过需要注意断行,否则不被diskpart接受。

点评

你试了吗?我发代码一般都是测试无误后才发布的。  详情 回复 发表于 2024-5-29 09:17
回复

使用道具 举报

10#
发表于 2024-5-29 09:17:44 来自手机 | 只看该作者
chen463 发表于 2024-5-29 08:21
FileClose $R0
此句柄无法通过编辑,似乎上面还需要命令,


你试了吗?我发代码一般都是测试无误后才发布的。
回复

使用道具 举报

11#
 楼主| 发表于 2024-5-29 09:22:52 | 只看该作者
本帖最后由 chen463 于 2024-5-29 09:27 编辑

试了,无法通过编辑
是否我编辑里少插件模块组,把它放在任何地方都没通过编辑

点评

file*是内置的,无需插件。提示什么错误?编辑还是编译?  详情 回复 发表于 2024-5-29 09:57
回复

使用道具 举报

12#
发表于 2024-5-29 09:57:50 来自手机 | 只看该作者
chen463 发表于 2024-5-29 09:22
试了,无法通过编辑
是否我编辑里少插件模块组,把它放在任何地方都没通过编辑

file*是内置的,无需插件。提示什么错误?编辑还是编译?
回复

使用道具 举报

13#
 楼主| 发表于 2024-5-29 10:06:09 | 只看该作者
编译执行时显示红标行,底下讯息,无法通过编译

点评

你为何非要我重复,错误提示?编译一般都会提示错误行数。看看哪错了。  详情 回复 发表于 2024-5-29 10:17
回复

使用道具 举报

14#
发表于 2024-5-29 10:17:40 来自手机 | 只看该作者
chen463 发表于 2024-5-29 10:06
编译执行时显示红标行,底下讯息,无法通过编译

你为何非要我重复,错误提示?编译一般都会提示错误行数。看看哪错了。
回复

使用道具 举报

15#
 楼主| 发表于 2024-5-29 10:20:32 | 只看该作者
本帖最后由 chen463 于 2024-5-29 10:24 编辑

FileClose $R0
提示错误行数

我现在在外,明天才能给剪图,先搁置吧!不急。

点评

那只是随便写的,$R0可以用$0~$9、$R0~$R9任意变量代替,自定义的也行,文件关闭前该变量不能被替代。  详情 回复 发表于 2024-5-29 11:24
回复

使用道具 举报

16#
发表于 2024-5-29 11:24:29 来自手机 | 只看该作者
chen463 发表于 2024-5-29 10:20
FileClose $R0
提示错误行数


那只是随便写的,$R0可以用$0~$9、$R0~$R9任意变量代替,自定义的也行,文件关闭前该变量不能被替代。

点评

果然是收尾符号输入错误造成无法编译执行,脚本OK,一次修改写入非常成功,感谢!  详情 回复 发表于 2024-5-30 09:10
刚刚看了一下FileClose,可能早上赶时间出门,是它上面行符号错了没收尾  详情 回复 发表于 2024-5-29 11:59
回复

使用道具 举报

17#
 楼主| 发表于 2024-5-29 11:59:10 | 只看该作者
nttwqz 发表于 2024-5-29 11:24
那只是随便写的,$R0可以用$0~$9、$R0~$R9任意变量代替,自定义的也行,文件关闭前该变量不能被替代。

刚刚看了一下FileClose,可能早上赶时间出门,是它上面行符号错了没收尾
回复

使用道具 举报

18#
 楼主| 发表于 2024-5-30 09:10:05 | 只看该作者
nttwqz 发表于 2024-5-29 11:24
那只是随便写的,$R0可以用$0~$9、$R0~$R9任意变量代替,自定义的也行,文件关闭前该变量不能被替代。

果然是收尾符号输入错误造成无法编译执行,脚本OK,一次修改写入非常成功,感谢!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-16 19:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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