中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-02 06:52
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 请教,纯DOS下如何获取当前盘符? 查看 3,377 回复 37
楼 主 请教,纯DOS下如何获取当前盘符? 发表于 2007-12-21 14:16 ·  中国 四川 成都 电信
初级用户
积分 100
发帖 45
注册 2007-12-11 18:02
18年会员
UID 105341
性别 男
状态 离线
如题,在纯DOS下如何获取当前盘符并输入到某文件中呢?

论坛里搜出来的那篇帖子里的方法都已经试过了,在XP下可以成功,但在纯DOS下却不能成功!出错提示如下:
Sector not found reading drive c.

[ Last edited by logan0279 on 2007-12-21 at 02:22 PM ]
2 发表于 2007-12-21 18:13 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
我的笨办法。
当前盘下,dir ttt.ttt>1.txt
然后处理1.txt文件。
Windows 一键还原
http://www.yjhy.com
3 发表于 2007-12-21 21:39 ·  中国 河北 保定 移动
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
echo exit | %comspec% /k prompt set curdrv=$N:$_ | find "set" > tmp.bat
call tmp.bat
echo %curdrv%


这是当年willsort版主发明的解决方案,在置顶的精华帖子汇总中就有。原帖链接如下:
http://www.cn-dos.net/forum/viewthread.php?tid=13813
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
4 发表于 2007-12-22 00:24 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,284
发帖 538
注册 2002-11-02 00:00
23年会员
UID 129
性别 男
状态 离线
echo exit | %comspec% /k prompt set curdrv=$N:$_ | find "set" > tmp.bat
call tmp.bat
echo %curdrv%


如果无需生成过渡文件就最理想了。
5 发表于 2007-12-22 08:09 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
当前盘符不可写时就不行了。
Windows 一键还原
http://www.yjhy.com
6 发表于 2007-12-22 08:36 ·  中国 四川 成都 电信
初级用户
积分 100
发帖 45
注册 2007-12-11 18:02
18年会员
UID 105341
性别 男
状态 离线
其实我是想做一个U盘启动盘,考虑到U盘在某些机子上识别为A盘,在另一些机子上识别为C盘,为了更好地执行U盘上的程序,所以才有此一问的!

不知道各位有没有更好的办法呢?
7 发表于 2007-12-22 08:40 ·  中国 河北 保定 移动
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
既然U盘的盘符要么是C:,要么是A:,你直接在U盘上放置一个标志文件,先检测C:下是否有这个标志文件,如果没有,那么盘符就是A:了。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
8 发表于 2007-12-22 08:51 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
Originally posted by Climbing at 2007-12-22 08:40:
既然U盘的盘符要么是C:,要么是A:,你直接在U盘上放置一个标志文件,先检测C:下是否有这个标志文件,如果没有,那么盘符就是A:了。

我现在就是这样处理的,实在没办法。
U盘可写还好办,遇上不可写的,一判断就会出错,只好用特征文件了。尽管不能保证万无一失。但简单多了。
Windows 一键还原
http://www.yjhy.com
9 发表于 2007-12-22 13:36 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,284
发帖 538
注册 2002-11-02 00:00
23年会员
UID 129
性别 男
状态 离线
Originally posted by logan0279 at 2007-12-22 08:36 AM:
其实我是想做一个U盘启动盘,考虑到U盘在某些机子上识别为A盘,在另一些机子上识别为C盘,为了更好地执行U盘上的程序,所以才有此一问的!

不知道各位有没有更好的办法呢?



无须指定盘符试试,且通用。
10 发表于 2007-12-22 19:09 ·  中国 四川 成都 电信
初级用户
积分 100
发帖 45
注册 2007-12-11 18:02
18年会员
UID 105341
性别 男
状态 离线
不指定盘符是不行的呀,因为我是想把U盘上的GHO映像文件还原到硬盘上去,而不同的机子对U盘的识别不同,这样执行GHOST时的参数也就不一样,所以需要知道当前盘符
!
11 发表于 2007-12-22 19:15 ·  中国 四川 成都 电信
初级用户
积分 100
发帖 45
注册 2007-12-11 18:02
18年会员
UID 105341
性别 男
状态 离线
7楼的方法着实不错,比我自己想的那个好多了!
12 发表于 2007-12-22 22:50 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,284
发帖 538
注册 2002-11-02 00:00
23年会员
UID 129
性别 男
状态 离线
Originally posted by logan0279 at 2007-12-22 07:09 PM:
不指定盘符是不行的呀,因为我是想把U盘上的GHO映像文件还原到硬盘上去,而不同的机子对U盘的识别不同,这样执行GHOST时的参数也就不一样,所以需要知道当前盘符
!


照你这样说来是可以的呀!

恢复:
ghost.exe -clone,mode=prestore,src=part2.gho,dst=1:2 -sure -rb
13 发表于 2007-12-23 07:19 ·  中国 广东 茂名 化州市 电信
中级用户
★★
积分 396
发帖 183
注册 2007-12-23 06:24
18年会员
UID 106531
性别 男
状态 离线
@echo off
@for /f "tokens=2" %%i in ('dir^|find "驱动器"') do echo 当前盘符为:%%i
pause
14 发表于 2007-12-23 13:59 ·  中国 江西 南昌 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
22年会员
UID 19350
性别 男
状态 离线
获取U盘引导盘盘符的话
我用的是%comspec%变量


if "%comspec%"=="C:\COMMAND.COM" set sysdrive=C:
if "%comspec%"=="A:\COMMAND.COM" set sysdrive=A:
15 发表于 2007-12-23 15:26 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
Originally posted by qzwqzw at 2007-12-23 13:59:
获取U盘引导盘盘符的话
我用的是%comspec%变量


if "%comspec%"=="C:\COMMAND.COM" set sysdrive=C:
if "%comspec%"=="A:\COMMAND.COM" se ...

好办法,谢谢了。呵呵。
比特征文件好多了。
Windows 一键还原
http://www.yjhy.com
论坛跳转: