中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 11:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:如何根据盘符,确定分区号。【已解决】 查看 1,627 回复 5
楼 主 请教:如何根据盘符,确定分区号。【已解决】 发表于 2006-11-21 11:31 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
请教:如何根据盘符,确定分区号。

缘由:自定义路径及文件名,用ghost来自动备份系统。
比如,自定义路径及文件名如下:
F:\backup\sys.gho

如何根据ghost -dd 生成的GHSTSTAT.TXT文件来确定分区号(有其他更好方法亦可)?即根据F:,找出1:5。
环境:windowsXP下。

谢谢!
---------------
GHSTSTAT.TXT的相关部分如下:
Remote Drives
AsyncIo : 0
Image Devices

Key 1:1
Key C:
Path C:
Desc C: 1:1
Type NTFS
Disk 0
Offset 63

Key 1:2
Path 1:2
Desc 1:2
Type NTFS
Disk 0
Offset 15438465

Key 1:3
Key D:
Path D:
Desc D: 1:3
Type NTFS
Disk 0
Offset 30732408

Key 1:4
Key E:
Path E:
Desc E: 1:4
Type NTFS
Disk 0
Offset 51215283

Key 1:5
Key F:
Path F:
Desc F: 1:5
Type FAT
Disk 0
Offset 81947628

Key 1:6
Key G:
Path G:
Desc G: 1:6
Type NTFS
Disk 0
Offset 143396253

Key H:
Path H:
Desc H:
Type CD

[ Last edited by lianjiang2004 on 2006-11-21 at 11:12 PM ]
2 发表于 2006-11-21 14:06 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线


@echo off
set/p pan=请输入所要查找的盘符,格式是:
for /f "tokens=2-3" %%i in ('type GHSTSTAT.TXT ^| find "Desc"') do (
if /i "%%i"=="%pan%" echo %%j
)
pause

  输入的时候,要注意加冒号,比如:"d:"。

  经过测试,可以行。备份操作命令你就自己写吧。本人没有玩过Ghost.
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +1 2006-11-21 23:39
3 发表于 2006-11-21 23:11 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
试了,可以用。多谢了。有问题再请教。
原来是参考了别人DOS下的批处理,很麻烦。这下好了。
---------------------
REM 根据设定文件,自动创建目录及批处理。
:p10
type GHSTSTAT.TXT|find /i " %drive%: 1:10 " >nul
if errorlevel 1 goto p9
set wst=10
goto sub_2

:p9
type GHSTSTAT.TXT|find /i " %drive%: 1:9 " >nul
if errorlevel 1 goto p8
set wst=9
goto sub_2

:p8
type GHSTSTAT.TXT|find /i " %drive%: 1:8 " >nul
if errorlevel 1 goto p7
set wst=8
goto sub_2

:p7
type GHSTSTAT.TXT|find /i " %drive%: 1:7 " >nul
if errorlevel 1 goto p6
set wst=7
goto sub_2

:p6
type GHSTSTAT.TXT|find /i " %drive%: 1:6 " >nul
if errorlevel 1 goto p5
set wst=6
goto sub_2

:p5
type GHSTSTAT.TXT|find /i " %drive%: 1:5 " >nul
if errorlevel 1 goto p4
set wst=5
goto sub_2

:p4
type GHSTSTAT.TXT|find /i " %drive%: 1:4 " >nul
if errorlevel 1 goto p3
set wst=4
goto sub_2

:p3
type GHSTSTAT.TXT|find /i " %drive%: 1:3 " >nul
if errorlevel 1 goto p2
set wst=3
goto sub_2

:p2
type GHSTSTAT.TXT|find /i " %drive%: 1:2 " >nul
if errorlevel 1 goto err_f
set wst=2
goto sub_2

:err_f
cls
echo.
echo 第一硬盘可能只有一个分区,无法进行自动备份
echo 请用PM等工具至少分出两个分区
echo ====================
pause
GOTO Exit

:sub_2
echo %save1%1:%wst%:%the_path%%save3%>bat\_bf.bat
echo %load1%1:%wst%:%the_path%%load3%>bat\_hf.bat
del GHSTSTAT.TXT
cls
echo.
echo 当前设置为:%drive%:%the_path% 即1:%wst%:%the_path%
4 发表于 2006-11-22 01:52 ·  中国 江西 上饶 电信
初级用户
积分 29
发帖 15
注册 2006-11-21 09:35
19年会员
UID 71243
性别 男
状态 离线
看了很久可是没有看懂什么,只怪自己太笨了.
5 发表于 2006-11-22 01:56 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
试着运行一下。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
6 发表于 2006-11-22 14:17 ·  中国 北京 鹏博士BGP
新手上路
积分 9
发帖 4
注册 2006-10-29 14:58
19年会员
UID 68784
性别 男
状态 离线
顶一下子了啊..
论坛跳转: