![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-06 07:46 |
共 47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 磁盘扇区读写、分区信息管理工具 Dsptw (2008.11.29 更新) |
| 可打印版本 120,016 / 565 |
| 第361楼 19951001 | 发表于 2008-05-07 22:21 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
|
to gmy:
http://upload.cn-dos.net/img/363.rar 你要的版本,我才上来看到有关 m 和 n 的要求,暂时没有实现,通过文件恢复mbr已经实现 dsptw 0 /mbr /noback /File:mymbr.bin /y 文件大小不能小于 432 字节。 这个工具也许对你有用: http://upload.cn-dos.net/img/339.rar [ Last edited by 19951001 on 2008-5-7 at 10:55 PM ] |
|
| 第362楼 gmy | 发表于 2008-05-07 22:37 |
| 版主 发帖 392 积分 1,113 | |
|
/file: 参数已经测试成功, 忘记了, 如果有时间, DOS版的dspt增加此功能。
看了一下str工具,确实有用, 但它只能 file to file ,不能 file to disk,所以就回到 /m /n 功能扩展问题了,我模仿str的参数建议楼主增加以下一个参数: 建议增加 /R1: Restore Bytes ("字节恢复", 这是/R "扇区恢复"的有力补充, /m /n 也不必开发了,因为已经包含进去了) DSPTW Start1: Offset to Process data in DstDisk. (目标磁盘要处理数据的起始位置,同时支持10进制和16进制) Start2: Offset to Process data in SrcFile. (源文件要处理数据的起始位置,同时支持10进制和16进制) Bytes: Total Bytes to be Processed (源文件要处理的字节数,同时支持10进制和16进制) 示例1: 异地恢复硬盘分区表: 仅恢复A机的HPT(硬盘分区表)至结束标志 到 B机的相应位置,不包括MBR(主引导记录)和微软数字签名等信息. A机: dsptw 0 0 1 /s a.bin /y B机: dsptw 0 1 /r1 0x1BE /from a.bin 0x1BE 66 /y 示例2: 本地备份硬盘分区表: 仅备份0扇区HPT(硬盘分区表)至结束标志 到 1扇区的相应位置,不包括MBR(主引导记录)和微软数字签名等信息. dsptw 0 0 1 /s a.bin /y dsptw 0 1 /r1 0x1BE /from a.bin 0x1BE 66 /y 示例3: 本地恢复硬盘分区表: 仅恢复1扇区HPT(硬盘分区表)至结束标志 到 0扇区的相应位置,不包括MBR(主引导记录)和微软数字签名等信息. dsptw 0 1 1 /s a.bin /y dsptw 0 0 /r1 0x1BE /from a.bin 0x1BE 66 /y 当以上内容写完了, 我突然醒悟: dsptw 与 str 配合就能实现以上3个例子,笨死了,基本思路是: 磁盘到文件: dsptw /s 文件到文件: str 文件到磁盘: dsptw /r [ Last edited by gmy on 2008-5-8 at 11:01 AM ] |
|
| 第363楼 lvyanan | 发表于 2008-06-29 10:10 |
| 新手上路 发帖 1 积分 2 | |
|
学习并受益,谢谢LZ提供!
|
|
| 第364楼 jmwjy | 发表于 2008-06-30 21:15 |
| 新手上路 发帖 5 积分 11 | |
|
好贴,
多谢楼主的分享! |
|
| 第365楼 ljb603 | 发表于 2008-07-14 18:09 |
| 初级用户 发帖 49 积分 112 | |
|
下面是我对硬盘 MBR 操作一个批处理,这样写对吗?(特别是每项的返回码是否正确):
@echo off cls echo. echo 硬盘 MBR 操作选项: echo. echo 1.备份 2.恢复 3.重建 echo. echo 4.查看 5.清零 6.退出 echo. choice /c:123456 /n 我要: if errorlevel 6 goto Exit if errorlevel 5 goto dspt5 if errorlevel 4 goto dspt4 if errorlevel 3 goto dspt3 if errorlevel 2 goto dspt2 if errorlevel 1 goto dspt1 :dspt1 cls dspt 0 0 1 /s %ramdrive%\mbr.bak /y >nul if errorlevel 1 echo 读取0柱1扇区的MBR失败! if errorlevel 1 goto Exit dspt 0 35 1 /r %ramdrive%\mbr.bak /y >nul if errorlevel 1 echo 备份MBR到0柱35扇区失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :dspt2 cls dspt 0 35 1 /s %ramdrive%\mbr.res /y >nul if errorlevel 1 echo 读取0柱35扇区的MBR失败! if errorlevel 1 goto Exit dspt 0 0 1 /r %ramdrive%\mbr.res /y >nul if errorlevel 1 echo 恢复硬盘 MBR 失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :dspt3 cls dspt 0 /mbr /noback /y >nul if errorlevel 1 echo 重建硬盘 MBR 失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :dspt4 cls dspt 0 0 1 /e /y >nul if errorlevel 1 echo 硬盘 MBR 清零失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :dspt5 cls dspt 0 35 1 /L /p /a if errorlevel 1 echo 你没有备份 MBR ! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :Exit |
|
| 第366楼 19951001 | 发表于 2008-07-14 22:04 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
Originally posted by ljb603 at 2008-7-14 18:09: 操纵成功返回0,不成功返回值大于0,见一楼。 在你的批处理中如果失败会显示失败信息,在显示成功信息。 @echo off cls echo. echo 硬盘 MBR 操作选项: echo. echo 1.备份 2.恢复 3.重建 echo. echo 4.查看 5.清零 6.退出 echo. choice /c:123456 /n 我要: if errorlevel 6 goto Exit if errorlevel 5 goto dspt5 if errorlevel 4 goto dspt4 if errorlevel 3 goto dspt3 if errorlevel 2 goto dspt2 if errorlevel 1 goto dspt1 :dspt1 cls dspt 0 0 1 /s %ramdrive%\mbr.bak /y >nul if errorlevel 1 echo 读取0柱1扇区的MBR失败! if errorlevel 1 goto Exit dspt 0 35 1 /r %ramdrive%\mbr.bak /y >nul if errorlevel 1 echo 备份MBR到0柱35扇区失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :dspt2 cls dspt 0 35 1 /s %ramdrive%\mbr.res /y >nul if errorlevel 1 echo 读取0柱35扇区的MBR失败! if errorlevel 1 goto Exit dspt 0 0 1 /r %ramdrive%\mbr.res /y >nul if errorlevel 1 echo 恢复硬盘 MBR 失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit ========================= 如果没有备份MBR岂不是MBR被清除!这样你会损失惨重的 ========================= :dspt3 cls dspt 0 /mbr /noback /y >nul if errorlevel 1 echo 重建硬盘 MBR 失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :dspt4 cls dspt 0 0 1 /e /y >nul if errorlevel 1 echo 硬盘 MBR 清零失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit ============================= 从最开始显示的看好像应该是查看,而不是清除,如果有人选择了4,岂不是MBR被清除,原来本打算看一下的,弄不好会丢失硬盘数据的,应该认真一定吧 ================================= :dspt5 cls dspt 0 35 1 /L /p /a if errorlevel 1 echo 你没有备份 MBR ! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit ====================================== 如果选择了5,应该是清除,不过显示到时不会造成破坏 如果显示第一硬盘MBR,请使用 dspt 0 0 1 /l /p /a 如果显示备份请用你的这段代码 ====================================== :Exit [ Last edited by 19951001 on 2008-7-14 at 10:06 PM ] |
|
| 第367楼 ljb603 | 发表于 2008-07-15 15:24 |
| 初级用户 发帖 49 积分 112 | |
|
多谢上楼提醒,是我将:dspt4和:dspt5的内容调错了,现更正如下:
…… :dspt4 cls dspt 0 35 1 /L /p /a if errorlevel 1 echo 你没有备份 MBR ! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :dspt5 cls dspt 0 0 1 /e /y >nul if errorlevel 1 echo 硬盘 MBR 清零失败! if errorlevel 0 echo 恭喜你,操作成功!!! goto Exit :Exit |
|
| 第368楼 19951001 | 发表于 2008-07-16 18:12 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
Originally posted by ljb603 at 2008-7-15 15:24: 如果失败的话,你这样写先两个Echo都会被显示出来的 [ Last edited by 19951001 on 2008-7-16 at 06:18 PM ] |
|
| 第369楼 xypcmac | 发表于 2008-07-24 21:11 |
| 初级用户 发帖 80 积分 167 | |
Originally posted by 19951001 at 2008-5-7 22:21: 447字节的文件好像不能恢复。 |
|
| 第370楼 19951001 | 发表于 2008-07-26 17:37 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
Originally posted by xypcmac at 2008-7-24 21:11: 通过文件恢复MBR,只要文件大于432字节就可以,恢复时只取前432个字节,和432字节以后的内容没有关系 |
|
| 第371楼 xypcmac | 发表于 2008-07-26 18:02 |
| 初级用户 发帖 80 积分 167 | |
|
为什么有447字节,那是因为在446字节(MBR)的前提下,加上了1字节的第一分区激活。即80
|
|
| 第372楼 19951001 | 发表于 2008-07-26 19:58 |
| 高级用户 发帖 272 积分 570 来自 北京 | |
Originally posted by xypcmac at 2008-7-26 18:02: 通过文件恢复 MBR 信息,不包括分区表的信息,目前微软的标准主引导记录就是 432 字节,所以程序中只取432字节的内容进行恢复,你的想法可以使用dspt(w)配合str通过扇区恢复的方式解决,看看gmy前面的帖子。 |
|
| 第373楼 xypcmac | 发表于 2008-07-27 15:47 |
| 初级用户 发帖 80 积分 167 | |
|
DSPT
用此命令似乎也不能恢复不规则的447字节的文件。 当然,我可以恢复446字节的MBR,然后再用 dsptw DISK /ACT:1 来完成。但这样我必然要写一些批处理代码。 |
|
| 第374楼 rockfirm | 发表于 2008-09-03 18:03 |
| 新手上路 发帖 1 积分 2 | |
|
woyao kankan
|
|
| 第375楼 zhenxin | 发表于 2008-09-03 21:26 |
| 初级用户 发帖 38 积分 83 | |
|
果然是好东西,谢谢楼主共享
|
|
| 上一页 1 … 22 23 24 25 26 27 28 … 38 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |