![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-18 00:33 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,270 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » DOS下如何让批处理自动识别某个盘符是第几个分区? |
| 可打印版本 8,255 / 24 |
| 第1楼 walu | 发表于 2004-04-22 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
DOS下如何让批处理自动识别某个盘符是第几个分区? 前言:在DOS下使用GHOST命令行形式时,若要把镜像恢复到分区,GHOST会自动把D盘识别为第2个分区,E盘为第3个分区。。。。。。
但假如中间存在NTFS格式分区和隐藏分区时,E盘就不是第3个分区,F盘也不是第4个分区了。 例子:如果C盘是FAT32分区,D盘是隐藏分区,E盘是NTFS分区,F盘是FAT32分区,在DOS下D盘和E盘是不会显示的,F盘变成了D盘, 问题提出:在DOS下如何让批处理自动识别D盘(实际是F盘)就是硬盘中的第4个分区而不是第2个分区? |
|
| 第2楼 Climbing | 发表于 2004-04-22 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
你是不是把问题搞的太复杂了?GHOST从来都不以盘符为恢复的依据,可以说它只认分区。
仔细想一下你要干什么,然后再去决定如何干。 |
|
| 第3楼 walu | 发表于 2004-04-22 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
简单的说,我是想把IBM一键恢复分区所需的文件如IO.SYS、COMMAND.COM等启动文件及GHOST.EXE文件用GHOST打包成一个*.gho文件,然后用PQMAGIC在硬盘分一个主分区(如E盘,卷标SYS_GHOST),再将*.gho文件用GHOST恢复到E盘中去(当然这个过程我只想在DOS自动执行)。这样开机就可以按F11键恢复系统了。
但将*.gho文件用GHOST恢复到E盘过程中,因为GHOST不以盘符为恢复的依据,它只认分区,在硬盘没有隐藏分区及NTFS格式分区情况下,E盘(SYS_GHOST分区)就是第3分区;但如果D盘是NTFS格式分区,这个SYS_GHOST分区在DOS下变成D盘了。 所以如何让DOS识别SYS_GHOST分区是第几个分区就变得复杂了。 |
|
| 第4楼 ggtt | 发表于 2004-04-23 00:00 |
| 初级用户 发帖 14 积分 146 | |
|
看不明白你想说什么,希望下面的对你有用
rem d:\ghost.exe -clone,mode=pload,src=e:\recover.gho:1,dst=1:1 -sure -rb rem -sure ------表示对所有问题回答YES rem -rb ------表示完成后自动重新启动 rem -fx ------GHOST完成工作后不显示(Press Ctrl-Alt-Del to reboot),而是直接回到DOS状态 mode=pload 恢复分区 dst=1:1 第一硬盘 第一分区 如果是src=不好确定可以用if exist 一个一个试 |
|
| 第5楼 walu | 发表于 2004-04-24 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
唉,你们都不明白的了。幸好一键恢复精灵作者饶晓超能理解,并且准备编出一个有这样功能的程序。
|
|
| 第6楼 Tamm | 发表于 2004-04-24 00:00 |
| 中级用户 发帖 64 积分 397 | |
|
看了半天还是没有十分看懂你的意思
希望这些办法对你有用: 1: 如果你事先知道你要操作的目的分区在物理硬盘上排列是为第几个分区,那么 GHOST 恢复的时候根本不存在问题,因为 GHOST 从影象文件恢复到分区的操作时,用于指明目的分是使用 "磁盘:分区" 这样的格式,(比如 DST=1:3) 2:如果并不知道分区是第几个物理分区,但知道分区的卷标是什么,那么你可以使用 Gdisk 和 lmod 这两个工具结合查出它是第几个物理分区,具体操作有点复杂,不过还是可行的. 简单说一下流程: Gdisk 1 >temp.txt 获得指定硬盘的分区列表到一个临时文本 find "label" temp.txt >temp1.txt 用卷标作为关键字提取相关分区的那一行 用 lmod 分析这一行中的信息(具体操作略) 因为 Gdisk 获得的分区列表是有一个固定格式的 所以能用 lmod 全面分析而得到想要的信息. 通过查找这一行中是 "PRIMARY" 还是 "LOGICAL" 以判断其是主分区还是逻辑分区. 因为 Gdisk 表示分区的编号与 Ghost 有所不同, Gdisk 中在主分区和逻辑分区中间会编号一个 "EXTENDED" 扩展分区.所以,Gdisk 显示的分区编号要用于 Ghost 的话就要经过处理才行 具体处理其实也容易,那就是:如果是主分区,就直接使用编号就行了,如果是逻辑分区,就把编号减1 就行了。 把上面的办法变通一下,你也可以用 LMOD 检查已知盘符的分区是物理分区中的第几个分区... (不适用于 NTFS 分区) |
|
| 第7楼 Tamm | 发表于 2004-04-25 00:00 |
| 中级用户 发帖 64 积分 397 | |
|
@ECHO OFF
gdisk 1 > %temp%\temp.txt TFind /f30,10 "label" %temp%\temp.txt >%temp%\temp1.txt type %temp%\temp1.txt | lmod set type=set part= >%temp%\temp.bat call %temp%\temp.bat if %type%==LOGICAL count part -1 set type= del %temp%\temp*.* :end 以上是通过卷标查找分区号的批处理 (只需将第三行 "label" 改为实际的卷标即可) 如果要通过盘符查找分区号,则将下面这一行替换上述批处理中的第三行: Tfind /f2,2 "E:" %temp%\temp.txt >%temp%\temp1.txt (这里以查找 E: 盘为例) 执行结果将分区号写入变量 %part% 本批处理使用了Norton 的 Gdisk 以及 Horst Schaeffer 的三个小程序: LMOD TFind COUNT |
|
| 第8楼 willsort | 发表于 2004-04-25 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re walu:
所以如何让DOS识别SYS_GHOST分区是第几个分区就变得复杂了。 你的意思是否可以这样表述——如何确定DOS系统能识别出的某个盘是硬盘的第几个分区,然后将这个分区号码置于命令行参数中供GHOST调用? |
|
| 第9楼 walu | 发表于 2004-04-25 00:00 |
| 高级用户 发帖 201 积分 916 | |
以下是引用willsort在2004-4-25 10:52:26的发言: willsort实在是高!就是这个意思。 批处理方面,willsort和Climbing都是顶尖级的高手! 请问这个问题可以通过批处理解决吗? |
|
| 第10楼 walu | 发表于 2004-04-26 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
问题已基本解决,感谢Tamm兄弟!
|
|
| 第11楼 walu | 发表于 2004-04-26 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
对于Tamm兄弟的这一句“如果是主分区,就直接使用编号就行了,如果是逻辑分区,就把编号减1 就行了”(如果用PQMAGIC在第一主分区上分出一个主分区后这一句不会出错)
仍是有错。因为如果用PQMAGIC在扩展分区上分出一个主分区后,直接使用编号就会出错,因GDISK虽认出了这是个主分区,但仍把它纳入逻辑分区中算分区号。 |
|
| 第12楼 Tamm | 发表于 2004-04-26 00:00 |
| 中级用户 发帖 64 积分 397 | |
以下是引用walu在2004-4-26 11:46:22的发言: 我没看明白... 你说 “... 如果用PQMAGIC在扩展分区上分出一个主分区后 ... ” 在扩展分区上怎么建立主分区呢...? 你的意思是用PQ把扩展分区缩小,然后在硬盘的扩展分区后面留出的那一部分再建立第二个主分区吗? 也就是这样?: 不好意思,我提出这个方案的时候确实没有考虑过这样的情况。 如果是这样的话,Gdisk 会使用这样的编号: 1 第一主分区 2 第二主分区 3 扩展分区 4... 扩展分区下的逻辑分区 但是我不知道 Ghost 在这样的情况下是如何使用分区编号的...... |
|
| 第13楼 walu | 发表于 2004-04-26 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
Tamm兄弟,我已找到另外一个程序代替GDISK就很完美了,但这个程序执行它后都出现“Press any key to continue...”即要求按任意键才能继续执行后面的程序,我不想用手工按任意键,而想执行它后自动接着执行后面的程序,请问要怎样做?
|
|
| 第14楼 Tamm | 发表于 2004-04-26 00:00 |
| 中级用户 发帖 64 积分 397 | |
|
能不能赐教...
使用什么代替的? ^_^ |
|
| 第15楼 walu | 发表于 2004-04-26 00:00 |
| 高级用户 发帖 201 积分 916 | |
|
是一个只有27K的文件,见附件打开附件
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |