无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: mdyblog

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
发表于 2020-12-31 16:12:57 | 显示全部楼层
求代码:
备份第一块本地硬盘第32~34扇区数据到文件?
从文件恢复数据到第一块本地硬盘第32~34扇区?

点评

备份第一块本地硬盘第32~34扇区数据到文件 恢复的话,套一下PUTF就行了  详情 回复 发表于 2020-12-31 16:47
GETF和putf  详情 回复 发表于 2020-12-31 16:31
回复

使用道具 举报

发表于 2020-12-31 16:31:19 来自手机 | 显示全部楼层
feiyike 发表于 2020-12-31 16:12
求代码:
备份第一块本地硬盘第32~34扇区数据到文件?
从文件恢复数据到第一块本地硬盘第32~34扇区?

GETF和putf
回复

使用道具 举报

发表于 2020-12-31 16:47:28 | 显示全部楼层
本帖最后由 红毛樱木 于 2020-12-31 16:55 编辑
feiyike 发表于 2020-12-31 16:12
求代码:
备份第一块本地硬盘第32~34扇区数据到文件?
从文件恢复数据到第一块本地硬盘第32~34扇区?


备份第一块本地硬盘第32~34扇区数据到文件
  1. ENVI &hd=0
  2. PART -iv=6 list disk %&hd%,&SectorSize
  3. GETF \\.\PhysicalDrive%&hd%,(31*%&SectorSize%)#(33*%&SectorSize%),&infos
  4. IFEX "%&CurDir%\infos.Dat", FILE "%&CurDir%\infos.Dat"
  5. PUTF "%&CurDir%\infos.Dat",0#,%&infos%
复制代码


恢复的话,套一下PUTF就行了
不过扇区大小不一样的话,恢复过去可能需要自己拆成之前备份时候扇区的大小,一个个的扇区恢复

点评

多谢!反复实验,搞懂了 再请教: 内置的 .MSI文件怎么运行?不想用临时文件的方式 PUTF -dd -bs=10M %&F1%,0,"."#101|EXEDATA EXEC =msiexec.exe /i %&F1%  详情 回复 发表于 2021-1-1 10:14
回复

使用道具 举报

发表于 2021-1-1 10:14:40 | 显示全部楼层
红毛樱木 发表于 2020-12-31 16:47
备份第一块本地硬盘第32~34扇区数据到文件

多谢!反复实验,搞懂了
再请教:
内置的 .MSI文件怎么运行?不想用临时文件的方式
   
     PUTF -dd -bs=10M %&F1%,0,"."#101|EXEDATA
     EXEC =msiexec.exe /i %&F1%


点评

MSI需要msiexec.exe调用的,首先msiexec.exe就不支持吧?  详情 回复 发表于 2021-1-1 22:57
回复

使用道具 举报

发表于 2021-1-1 22:57:47 | 显示全部楼层
feiyike 发表于 2021-1-1 10:14
多谢!反复实验,搞懂了
再请教:
内置的 .MSI文件怎么运行?不想用临时文件的方式

MSI需要msiexec.exe调用的,首先msiexec.exe就不支持吧?
回复

使用道具 举报

发表于 2021-1-2 10:32:39 | 显示全部楼层
DFMT命令格式化磁盘时,能不能使用磁盘号去定位磁盘而不是盘符?比如0:1去格式化0磁盘1分区

点评

TEAM FDRV *rsort *idle &&Drvs=*:| MSTR &&Drv1=%&Drvs%| FIND *&&Drvs, TEAM~ SHOW & 0:1,%&&Drv1%~ DFMT %&&Drv1%,NTFS,RamDisk,1~ SUBJ & %&&Drv1%  详情 回复 发表于 2021-1-2 16:18
这个需求能简化几行代码,哈哈  详情 回复 发表于 2021-1-2 15:57
回复

使用道具 举报

发表于 2021-1-2 15:57:11 来自手机 | 显示全部楼层
caocaofff 发表于 2021-1-2 10:32
DFMT命令格式化磁盘时,能不能使用磁盘号去定位磁盘而不是盘符?比如0:1去格式化0磁盘1分区

这个需求能简化几行代码,哈哈
回复

使用道具 举报

 楼主| 发表于 2021-1-2 16:18:03 | 显示全部楼层
caocaofff 发表于 2021-1-2 10:32
DFMT命令格式化磁盘时,能不能使用磁盘号去定位磁盘而不是盘符?比如0:1去格式化0磁盘1分区



TEAM  FDRV *rsort *idle  &&Drvs=*:| MSTR &&Drv1=<1>%&Drvs%| FIND *<>&&Drvs, TEAM~  SHOW & 0:1,%&&Drv1%~ DFMT  %&&Drv1%,NTFS,RamDisk,1~ SUBJ  &  %&&Drv1%

点评

BootOrder_EFI-Set.wcs 中的括号是不是多了一个? [attachimg]472128[/attachimg]  详情 回复 发表于 2021-1-4 18:50
他意思应该是想用DFMT后面直接接分区号,省事的代码那种  详情 回复 发表于 2021-1-2 19:44
回复

使用道具 举报

发表于 2021-1-2 19:44:31 | 显示全部楼层
mdyblog 发表于 2021-1-2 16:18
TEAM  FDRV *rsort *idle  &&Drvs=*:| MSTR &&Drv1=%&Drvs%| FIND *&&Drvs, TEAM~  SHOW & 0:1,%&&Dr ...

他意思应该是想用DFMT后面直接接分区号,省事的代码那种
回复

使用道具 举报

发表于 2021-1-4 18:50:50 | 显示全部楼层
mdyblog 发表于 2021-1-2 16:18
TEAM  FDRV *rsort *idle  &&Drvs=*:| MSTR &&Drv1=%&Drvs%| FIND *&&Drvs, TEAM~  SHOW & 0:1,%&&Dr ...

BootOrder_EFI-Set.wcs 中的括号是不是多了一个?

222.jpg

点评

还真是的。 已修改。  详情 回复 发表于 2021-1-4 19:06
回复

使用道具 举报

 楼主| 发表于 2021-1-4 19:06:01 | 显示全部楼层
527104427 发表于 2021-1-4 18:50
BootOrder_EFI-Set.wcs 中的括号是不是多了一个?

还真是的。 已修改。
回复

使用道具 举报

 楼主| 发表于 2021-1-10 06:42:22 | 显示全部楼层
本帖最后由 mdyblog 于 2021-1-10 11:23 编辑

获得启动分区    GetBootDev2.wcs.zip (2.84 KB, 下载次数: 9)

点评

EXEC -su -incmd =PECMD SUBJ * \Device\HarddiskVolume2,%Drv1% 这里是不是搞反了,是不是应该这样写:EXEC -su -incmd =PECMD SUBJ * %Drv1%,\Device\HarddiskVolume2  详情 回复 发表于 2021-1-12 08:09
原来file和forx也能这么用,太好了  详情 回复 发表于 2021-1-10 09:19
回复

使用道具 举报

发表于 2021-1-10 09:19:45 | 显示全部楼层
mdyblog 发表于 2021-1-10 06:42
获得启动分区   
效果:
GetSystemSystemPartition  &&BootDrv1  "-m"

原来file和forx也能这么用,太好了

点评

GETF READ WRIT 等文件操作都可以这么用。  详情 回复 发表于 2021-1-10 09:41
回复

使用道具 举报

 楼主| 发表于 2021-1-10 09:41:48 | 显示全部楼层
本帖最后由 mdyblog 于 2021-1-10 09:49 编辑
527104427 发表于 2021-1-10 09:19
原来file和forx也能这么用,太好了

GETF READ WRIT IFEX  等文件操作都可以这么用。
IFEX \\?\Harddisk1Partition3\efi\microsoft\boot\bcd, MESS YYY! MESS NNN
GETF \\?\Harddisk1Partition3\efi\microsoft\boot\bcd,0#2,&V
READ  \\?\Harddisk1Partition2\boot\grub\grub.cfg,1,&V

WRIT  \\?\Harddisk1Partition2\AAA.INI,$+0,%&V%


点评

说明书上都没有,我以为不支持呢。另外,fdir能这么用吗,上次试了一下,貌似不能  详情 回复 发表于 2021-1-10 10:15
回复

使用道具 举报

发表于 2021-1-10 10:15:10 | 显示全部楼层
mdyblog 发表于 2021-1-10 09:41
GETF READ WRIT IFEX  等文件操作都可以这么用。
IFEX \\?\Harddisk1Partition3\efi\microsoft\boot\bcd ...

说明书上都没有,我以为不支持呢。另外,fdir能这么用吗,上次试了一下,貌似不能

点评

可以: FDIR &V=\\?\Harddisk1Partition2\boot\grub\grub.cfg MESS. [%&V%] // [\\?\Harddisk1Partition2\boot\grub]  详情 回复 发表于 2021-1-10 10:22
回复

使用道具 举报

 楼主| 发表于 2021-1-10 10:22:10 | 显示全部楼层
本帖最后由 mdyblog 于 2021-1-10 10:29 编辑
527104427 发表于 2021-1-10 10:15
说明书上都没有,我以为不支持呢。另外,fdir能这么用吗,上次试了一下,貌似不能

说明书上有:
1.png

2.png
3.png

FDIR可以:
FDIR &V=\\?\Harddisk1Partition2\boot\grub\grub.cfg
MESS. [%&V%]
//  [\\?\Harddisk1Partition2\boot\grub]


FDRV也可以:
FDRV &V=\\?\Harddisk1Partition2\boot\grub\grub.cfg
MESS. [%&V%]
//  [\\?\Harddisk1Partition2]


点评

老大,发现 LTSB 2016 运行 GetBootDev.wcs 有点问题,并不能发现盘符。系统是从 https://next.itellyou.cn 中下载的。步骤1:先用 SUBJ *Z:,\Device\HarddiskVolume4 挂载ESP分区 步骤2:运行 GetBootDev.wcs  详情 回复 发表于 2021-1-10 21:31
好的  详情 回复 发表于 2021-1-10 11:51
回复

使用道具 举报

发表于 2021-1-10 11:51:42 | 显示全部楼层

好的
回复

使用道具 举报

发表于 2021-1-10 16:09:20 | 显示全部楼层
下面数据剔除重复行,怎么处理?
1,,53335.730,31347.620,52.460
2,,53331.150,31333.340,49.379
3,,53331.150,31333.340,49.379
4,,53335.730,31347.620,52.460
.......
13,,53362.800,31340.890,53.642
14,,53362.800,31340.890,53.642
15,,53344.100,31322.260,48.737
16,,53362.800,31340.890,53.642
17,,53348.660,31364.210,56.508
18,,53331.840,31362.690,53.322
19,,53362.800,31340.890,53.642
......

有n多行,第1、4行,第2、3行,第13、14、19行,判定为重复行

点评

导入数组, 再剔除。  详情 回复 发表于 2021-1-11 10:26
前面的 “19,,”也是改行数据的一部分吗?  详情 回复 发表于 2021-1-11 09:44
变相的把数据都放到list里,再取出来  详情 回复 发表于 2021-1-10 16:42
回复

使用道具 举报

发表于 2021-1-10 16:42:58 来自手机 | 显示全部楼层
feiyike 发表于 2021-1-10 16:09
下面数据剔除重复行,怎么处理?
1,,53335.730,31347.620,52.460
2,,53331.150,31333.340,49.379

变相的把数据都放到list里,再取出来
回复

使用道具 举报

发表于 2021-1-10 21:31:28 | 显示全部楼层

老大,发现 LTSB 2016 运行 GetBootDev.wcs 有点问题,并不能发现盘符。系统是从
https://next.itellyou.cn 中下载的。
步骤1:先用 SUBJ *Z:,\Device\HarddiskVolume4 挂载ESP分区

步骤2:运行 GetBootDev.wcs

11111.jpg

系统下载地址:cn_windows_10_enterprise_2016_ltsb_x64_dvd_9060409.iso (3.56 GB)
用这个迅雷下载很快,破解会员加速的:http://bbs.wuyou.net/forum.php?m ... &fromuid=378114



点评

SUBJ 强行加的DRV, 不在核心。(当然可以分析,配对 用户层盘符, 那还要加代码) 简单的方法, 可以调整顺序 步骤1:运行 GetBootDev.wcs 如果没有没有盘符, SUBJ & Z:,\Device\HarddiskVolume4 挂载E  详情 回复 发表于 2021-1-11 09:49
回复

使用道具 举报

 楼主| 发表于 2021-1-11 09:44:54 | 显示全部楼层
feiyike 发表于 2021-1-10 16:09
下面数据剔除重复行,怎么处理?
1,,53335.730,31347.620,52.460
2,,53331.150,31333.340,49.379

前面的 “19,,”也是改行数据的一部分吗?
回复

使用道具 举报

 楼主| 发表于 2021-1-11 09:49:13 | 显示全部楼层
527104427 发表于 2021-1-10 21:31
老大,发现 LTSB 2016 运行 GetBootDev.wcs 有点问题,并不能发现盘符。系统是从 https://next.itellyou. ...

SUBJ 强行加的DRV, 不在核心。(当然可以分析,配对 用户层盘符, 那还要加代码)


简单的方法,
可以调整顺序
步骤1:运行 GetBootDev.wcs

如果没有没有盘符, SUBJ & Z:,\Device\HarddiskVolume4 挂载ESP分区
//。。。。


SUBJ &-  Z:

点评

加盘符是个办法,但也有特殊情况,比如盘符耗尽的时候。 不知道part命令能否直接通过\Device\HarddiskVolume4这种形式获取到详细信息呢,这样就比较靠谱了  详情 回复 发表于 2021-1-11 10:45
回复

使用道具 举报

 楼主| 发表于 2021-1-11 10:26:22 | 显示全部楼层
feiyike 发表于 2021-1-10 16:09
下面数据剔除重复行,怎么处理?
1,,53335.730,31347.620,52.460
2,,53331.150,31333.340,49.379

导入数组, 再剔除。
TrimX.WCS.zip (732 Bytes, 下载次数: 6)

点评

谢谢m大,有够学习一阵儿了  详情 回复 发表于 2021-1-11 15:57
回复

使用道具 举报

发表于 2021-1-11 10:45:38 | 显示全部楼层
mdyblog 发表于 2021-1-11 09:49
SUBJ 强行加的DRV, 不在核心。(当然可以分析,配对 用户层盘符, 那还要加代码)

加盘符是个办法,但也有特殊情况,比如盘符耗尽的时候。
不知道part命令能否直接通过\Device\HarddiskVolume4这种形式获取到详细信息呢,这样就比较靠谱了

点评

[FirmwareBootDevice "\ArcName\multi(0)disk(0)rdisk(0)partition(2)" "\Device\Harddisk0\Partition2" "\Device\HarddiskVolume2" \Device\Harddisk0\Partition2 就是分区 0:2 PART -phy# list part 0:  详情 回复 发表于 2021-1-11 11:42
回复

使用道具 举报

 楼主| 发表于 2021-1-11 11:42:22 | 显示全部楼层
本帖最后由 mdyblog 于 2021-1-11 11:55 编辑
527104427 发表于 2021-1-11 10:45
加盘符是个办法,但也有特殊情况,比如盘符耗尽的时候。
不知道part命令能否直接通过\Device\HarddiskVo ...

[FirmwareBootDevice "\ArcName\multi(0)disk(0)rdisk(0)partition(2)"  "\Device\Harddisk0\Partition2"  "\Device\HarddiskVolume2"
\Device\Harddisk0\Partition2  就是分区 0:2

PART -phy#  list   part 0:2,&&V
MESS. %&V%
// 2     7   1    85929500160   107374182400   167831055   193303682560    2  C:
//这里可得到用户层的盘符

用 "\Device\HarddiskVolume2 也可以 , \Device\换为 \\.\
part list volume \\.\HarddiskVolume2,&&V
// \\.\Harddisk0Partition2\ 0 2 7 7 85929500160 107374182400
\Device\Harddisk0\Partition2 也可对应
part list volume \\.\Harddisk0Partition2,V
// \\.\Harddisk0Partition2\ 0 2 7 7 85929500160 107374182400





点评

这个好!如果能有个 -fill 参数就更好了,直接返回盘符 part -fill list volume \\.\HarddiskVolume2,&&V  详情 回复 发表于 2021-1-11 12:02
回复

使用道具 举报

发表于 2021-1-11 12:02:03 | 显示全部楼层
mdyblog 发表于 2021-1-11 11:42
[FirmwareBootDevice "\ArcName\multi(0)disk(0)rdisk(0)partition(2)"  "\Device\Harddisk0\Partition2" ...

这个好!如果能有个 -fill 参数就更好了,直接返回盘符
part -fill list volume \\.\HarddiskVolume2,&&V

点评

PART -iv=8 list part 0:2,&&V MESS. %&V% //C:  详情 回复 发表于 2021-1-11 12:07
回复

使用道具 举报

 楼主| 发表于 2021-1-11 12:07:07 | 显示全部楼层
527104427 发表于 2021-1-11 12:02
这个好!如果能有个 -fill 参数就更好了,直接返回盘符
part -fill list volume \\.\HarddiskVolume2,&& ...

PART -iv=8  list   part 0:2,&&V
MESS. %&V%
//C:
回复

使用道具 举报

发表于 2021-1-11 15:57:45 | 显示全部楼层
mdyblog 发表于 2021-1-11 10:26
导入数组, 再剔除。

谢谢m大,有够学习一阵儿了
回复

使用道具 举报

 楼主| 发表于 2021-1-11 23:22:35 | 显示全部楼层
本帖最后由 mdyblog 于 2021-1-12 09:19 编辑
527104427 发表于 2021-1-11 12:02
这个好!如果能有个 -fill 参数就更好了,直接返回盘符
part -fill list volume \\.\HarddiskVolume2,&& ...

GetBootDev3.wcs.zip (2.92 KB, 下载次数: 7)
回复

使用道具 举报

发表于 2021-1-12 08:09:04 | 显示全部楼层
本帖最后由 527104427 于 2021-1-12 08:11 编辑
mdyblog 发表于 2021-1-10 06:42
获得启动分区   
效果:
……
//EXEC -su -incmd =PECMD   SUBJ * \Device\HarddiskVolume2,%Drv1%

EXEC -su -incmd =PECMD   SUBJ * \Device\HarddiskVolume2,%Drv1%
这里是不是搞反了,是不是应该这样写:
EXEC -su -incmd =PECMD   SUBJ * %Drv1%,\Device\HarddiskVolume2

点评

对。 EXEC -su -incmd =PECMD SUBJ * %Drv1%,\Device\HarddiskVolume2  详情 回复 发表于 2021-1-12 09:17
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 22:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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