|
zts59
中级用户
积分 387
发帖 104
注册 2004-11-19
状态 离线
|
『楼 主』:
在DOS7.1中,用什么方法把”cd“输出内容赋予变量中?
刚启动DOS7.1,无外部命令。
想通过“CD”得到刚启动后的盘符。并赋予变量中。
注:因为是镜像文件,不能创建文件。
[ Last edited by zts59 on 2006-8-10 at 11:06 ]
|
|
2006-8-10 11:04 |
|
|
zts59
中级用户
积分 387
发帖 104
注册 2004-11-19
状态 离线
|
『第
2 楼』:
无解吗??
只有不通过CD来得到盘符了,呵呵,用%comspec%了
|
|
2006-8-10 21:16 |
|
|
brglng
银牌会员
永遠的DOS~~~
积分 1200
发帖 466
注册 2005-2-1 来自 上海
状态 离线
|
『第
3 楼』:
exit | %comspec% /Q /K prompt set a=$n > a.bat
call a.bat
|
32位才是DOS未来的希望
个人网志:http://sololand.moe |
|
2006-8-11 10:35 |
|
|
zts59
中级用户
积分 387
发帖 104
注册 2004-11-19
状态 离线
|
『第
4 楼』:
谢谢楼上的,
不过有点问题,变量A并没有得到当前盘符。
所以我用了
if %comspec%==C:\COMMAND.COM goto next|set bootp=C:
if %comspec%==A:\COMMAND.COM goto next|set bootp=A:
|
|
2006-8-11 13:37 |
|
|
brglng
银牌会员
永遠的DOS~~~
积分 1200
发帖 466
注册 2005-2-1 来自 上海
状态 离线
|
『第
5 楼』:
Quote: | Originally posted by zts59 at 2006-8-11 01:37 PM:
谢谢楼上的,
不过有点问题,变量A并没有得到当前盘符。
所以我用了
if %comspec%==C:\COMMAND.COM goto next|set bootp=C:
if %comspec%==A:\COMMAND.COM goto next|set boot ... |
|
它得到的是盘符的字母。如果后面要加“:”可以改成:
exit | %comspec% /Q /K prompt set a=$n: > a.bat
call a.bat
如果把上述“$n”改为“$p”则得到当前路径。
|
32位才是DOS未来的希望
个人网志:http://sololand.moe |
|
2006-8-11 14:09 |
|
|
zts59
中级用户
积分 387
发帖 104
注册 2004-11-19
状态 离线
|
『第
6 楼』:
不对吧,不知道这么朋友有没有测试,
/Q 参数不存在 难道是我的DOS7.1有问题?
把/Q去掉后运行,其实没有得到变量A 而是把提示符变成了 set a=C
因为不能建立文件,也有输出到A.bat是不行的。
其实你不用调用A.bat 你用echo %a%看看结果吧
[ Last edited by zts59 on 2006-8-11 at 18:54 ]
|
|
2006-8-11 18:41 |
|
|
brglng
银牌会员
永遠的DOS~~~
积分 1200
发帖 466
注册 2005-2-1 来自 上海
状态 离线
|
『第
7 楼』:
我知道了
MSDOS 7.1的Command.com没有/Q参数,而照上面执行后%a%变量多出一个“exit”
试试这样吧:
echo @prompt @set a=$n: >a.bat
%comspec% /c a.bat >b.bat
call b.bat
del a.bat
del b.bat
我在VPC中测试成功。但是在cmd下测试没通过。但是5楼的方法在cmd下能通过。但是这两种方法在FreeDOS的FreeCOM下都不能成功,不知什么原因。
[ Last edited by brglng on 2006-8-11 at 20:56 ]
|
32位才是DOS未来的希望
个人网志:http://sololand.moe |
|
2006-8-11 20:39 |
|
|
zts59
中级用户
积分 387
发帖 104
注册 2004-11-19
状态 离线
|
『第
8 楼』:
谢谢了,
其实你还建立了两个批处理,因为是镜像文件,不能产生文件的,是不能写入的。
这样的话,我还要考滤要加载内存虚拟盘,然后用上述代码。不可合理哟。
况且如果可以写入文件的话,用:
cd\
cd>aa.txt
就可以了,
要知道DOS启动的话,不是在A盘,就是在C盘。所用 if %comspec%=……
就最简单了。
也谢谢你的方法,给了另一种思路。
[ Last edited by zts59 on 2006-8-11 at 21:07 ]
|
|
2006-8-11 21:04 |
|
|
movy
初级用户
积分 61
发帖 33
注册 2007-1-13
状态 离线
|
『第
9 楼』:
说明一下,对于镜像软盘 并非不能写文件,而是要镜像盘还有空闲空间,另外,如果关机前没有把新生成文件转存到硬盘,关机后就会“消失”——因为镜像软盘中的文件是存 在 内存中 的。
|
|
2007-1-14 09:21 |
|