中国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] [3] »
作者:
标题: 请教,纯DOS下如何获取当前盘符? 上一主题 | 下一主题
logan0279
初级用户





积分 100
发帖 45
注册 2007-12-11
状态 离线
『楼 主』:  请教,纯DOS下如何获取当前盘符?

如题,在纯DOS下如何获取当前盘符并输入到某文件中呢?

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

[ Last edited by logan0279 on 2007-12-21 at 02:22 PM ]

2007-12-21 14:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





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

我的笨办法。
当前盘下,dir ttt.ttt>1.txt
然后处理1.txt文件。



Windows 一键还原
http://www.yjhy.com
2007-12-21 18:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 3 楼』:  


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



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-12-21 21:39
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
chishingchan
银牌会员




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



  Quote:
echo exit | %comspec% /k prompt set curdrv=$N:$_ | find "set" > tmp.bat
call tmp.bat
echo %curdrv%

如果无需生成过渡文件就最理想了。

2007-12-22 00:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





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

当前盘符不可写时就不行了。



Windows 一键还原
http://www.yjhy.com
2007-12-22 08:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
logan0279
初级用户





积分 100
发帖 45
注册 2007-12-11
状态 离线
『第 6 楼』:  

其实我是想做一个U盘启动盘,考虑到U盘在某些机子上识别为A盘,在另一些机子上识别为C盘,为了更好地执行U盘上的程序,所以才有此一问的!

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

2007-12-22 08:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 7 楼』:  

既然U盘的盘符要么是C:,要么是A:,你直接在U盘上放置一个标志文件,先检测C:下是否有这个标志文件,如果没有,那么盘符就是A:了。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-12-22 08:40
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
lianjiang2004
金牌会员





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



  Quote:
Originally posted by Climbing at 2007-12-22 08:40:
既然U盘的盘符要么是C:,要么是A:,你直接在U盘上放置一个标志文件,先检测C:下是否有这个标志文件,如果没有,那么盘符就是A:了。

我现在就是这样处理的,实在没办法。
U盘可写还好办,遇上不可写的,一判断就会出错,只好用特征文件了。尽管不能保证万无一失。但简单多了。



Windows 一键还原
http://www.yjhy.com
2007-12-22 08:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




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



  Quote:
Originally posted by logan0279 at 2007-12-22 08:36 AM:
其实我是想做一个U盘启动盘,考虑到U盘在某些机子上识别为A盘,在另一些机子上识别为C盘,为了更好地执行U盘上的程序,所以才有此一问的!

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

无须指定盘符试试,且通用。

2007-12-22 13:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
logan0279
初级用户





积分 100
发帖 45
注册 2007-12-11
状态 离线
『第 10 楼』:  

不指定盘符是不行的呀,因为我是想把U盘上的GHO映像文件还原到硬盘上去,而不同的机子对U盘的识别不同,这样执行GHOST时的参数也就不一样,所以需要知道当前盘符
!

2007-12-22 19:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
logan0279
初级用户





积分 100
发帖 45
注册 2007-12-11
状态 离线
『第 11 楼』:  

7楼的方法着实不错,比我自己想的那个好多了!

2007-12-22 19:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chishingchan
银牌会员




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



  Quote:
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


2007-12-22 22:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『第 13 楼』:  

@echo off
@for /f "tokens=2" %%i in ('dir^|find "驱动器"') do echo 当前盘符为:%%i
pause

2007-12-23 07:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qzwqzw
银牌会员

天的白色影子


积分 2342
发帖 635
注册 2004-3-6
状态 离线
『第 14 楼』:  

获取U盘引导盘盘符的话
我用的是%comspec%变量
if "%comspec%"=="C:\COMMAND.COM" set sysdrive=C:
if "%comspec%"=="A:\COMMAND.COM" set sysdrive=A:


2007-12-23 13:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





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



  Quote:
Originally posted by qzwqzw at 2007-12-23 13:59:
获取U盘引导盘盘符的话
我用的是%comspec%变量

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

好办法,谢谢了。呵呵。
比特征文件好多了。



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


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



论坛跳转: