中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何在特定条件下获得纯DOS下最后硬盘盘符?
« [1] [2] »
作者:
标题: [求助]如何在特定条件下获得纯DOS下最后硬盘盘符? 上一主题 | 下一主题
longge0000
初级用户





积分 24
发帖 11
注册 2008-10-14
状态 离线
『第 16 楼』:  

真晕,说纯DOS了,NTFS和隐藏分区的盘符在纯DOS下都算没有,
查到的最后盘符对GHOST都没有!!!
FINDRAMD.EXE这个文件就是查找实DOS下的盘符,大多数启动盘都有!!!!!
还用什么XP命令纯DOS下运行,我就不懂能运行!!!!!

[ Last edited by longge0000 on 2008-11-26 at 22:14 ]

2008-11-26 21:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 17 楼』:  之前还未完善的作品:或许大家看过后会明白

install.cmd
@echo off
:: 获取硬盘最后分区盘符
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (for /f %%h in ('fsutil fsinfo drivetype %%a:^|findstr /i "固定驱动器"') do set cmdlastdrive=%%h)
:: 如果最后分区是系统分区,退出
if %cmdlastdrive%*==%SystemDrive%* mshta vbscript:msgbox("备份分区不能用于安装系统!",0,"错误")(window.close)&&exit
:: 获取硬盘最后分区格式
for /f "tokens=2 delims=: " %%a in ('fsutil fsinfo volumeinfo %cmdlastdrive%\^|find "文件系统名"') do set cldformat=%%a
:: 如果分区不是FAT32格式,退出
if not %cldformat%*==FAT32* mshta vbscript:msgbox("备份分区只能使用FAT32格式!",0,"错误")(window.close)&&exit
:: 如果备份分区容量少于1GB,退出
for /f "tokens=2" %%a in ('chkdsk %cmdlastdrive%^|find "总"') do set size=%%a
if %size:,=% lss 1024000 mshta vbscript:msgbox("备份分区容量不能少于 1GB!",0,"错误")(window.close)&&exit

:: 建立备份恢复目录
if not exist %cmdlastdrive%\BACKUP\nul md %cmdlastdrive%\BACKUP
:: 获取系统分区标识
for /f "tokens=6 delims=()" %%a in ('type c:\boot.ini^|findstr /i "rdisk"') do @set rd=%%a
set /a rd+=1
for /f "tokens=8 delims=()" %%a in ('type c:\boot.ini 2^>nul^|findstr /i "partition"') do @set partition=%%a
:: 获取纯DOS方式的最后盘符
setlocal EnableDelayedExpansion
set drives= CDEFGHIJKLMNOPQRSTUVWXYZ
for /f %%i in ('wmic logicaldisk where "drivetype=3" get FileSystem ^| find /c "FAT"') do set doslastdrive=!drives:~%%i,1!:

:: 设置备份文件:CREATE.TXT
>%cmdlastdrive%\BACKUP\CREATE.TXT echo -CLONE,MODE=PCREATE,SRC=%rd%:%partition%,DST=%doslastdrive%\BACKUP\H%rd%P%partition%.GHO
>>%cmdlastdrive%\BACKUP\CREATE.TXT echo -SKIP=\PAGEFILE.SYS
>>%cmdlastdrive%\BACKUP\CREATE.TXT echo -Z9
>>%cmdlastdrive%\BACKUP\CREATE.TXT echo -SURE
>>%cmdlastdrive%\BACKUP\CREATE.TXT echo -RB

:: 设置恢复文件:RESTORE.TXT
>%cmdlastdrive%\BACKUP\RESTORE.TXT echo -CLONE,MODE=PRESTORE,SRC=%doslastdrive%\BACKUP\H%rd%P%partition%.GHO:1,DST=%rd%:%partition%
>>%cmdlastdrive%\BACKUP\RESTORE.TXT echo -SURE
>>%cmdlastdrive%\BACKUP\RESTORE.TXT echo -RB

vfloppy.exe -1 c:\vloader.bin -2 c:\vmemdsk.bin -i c:\vfloppy.ima

:: 设置分区卷标名称
if not %SystemDrive%*==C:* label C: 启动
label %SystemDrive% 系统
label %cmdlastdrive% 备份
install.inf
[Version]
Signature="$CHICAGO$"

[DefaultInstall]
CopyFiles = VirtualFloppy.CopyFiles
UpdateInis = boot.ini

[DestinationDirs]
VirtualFloppy.CopyFiles = 30

[VirtualFloppy.CopyFiles]
vfloppy.ima
vloader.bin
vmemdsk.bin

[boot.ini]
%30%\boot.ini,"operating systems",,"%30%\vloader.bin=""虚拟软盘:自动备份或恢复系统数据。   """
[ Last edited by chishingchan on 2008-11-26 at 22:31 ]

2008-11-26 22:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




积分 1282
发帖 538
注册 2002-11-2
状态 离线
『第 18 楼』:  

使用系统自带的 IEXPRESS.EXE 打包

:: 获取纯DOS方式的最后盘符    这段还未更改。

纯DOS部分:IMG 文件 2.8MB,包含GHOST.EXE 且有自动识别最后分区的功能

有更好的建议请赐教,谢谢!

[ Last edited by chishingchan on 2008-11-26 at 22:24 ]

2008-11-26 22:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 19 楼』:  

自己能控制分区的机子,好办。
不能的话,如何处理,应是关键。
似乎类似问题几个月前讨论过。毫无结果。



Windows 一键还原
http://www.yjhy.com
2008-11-27 08:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: