中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-02 11:38
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 如何利用%cd%显示批处理文件所在的根目录? 查看 1,743 回复 7
楼 主 如何利用%cd%显示批处理文件所在的根目录? 发表于 2008-06-21 16:37 ·  中国 北京 丰台区 联通
新手上路
积分 10
发帖 4
注册 2007-05-28 20:41
19年会员
UID 89594
性别 男
状态 离线
记得以前有人说过,好像是取了变量%cd%的前3个字符,一个命令就可以了
强大的DOS......

아자 아자 화이팅! Fighting !
2 发表于 2008-06-22 09:33 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
%CD%不一定表示批处理所在的目录,而是表示你运行这个批处理时的当前目录。假设这样:

D:\DOS> c:\batch\my.bat

那么%cd%表示d:\dos目录,而my.bat所在的目录却是c:\batch。

如果在cmd下,可以用%~dp0来表示批处理所在盘符。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
3 发表于 2008-06-22 22:41 ·  中国 北京 丰台区 联通
新手上路
积分 10
发帖 4
注册 2007-05-28 20:41
19年会员
UID 89594
性别 男
状态 离线
谢谢楼上的解答,可惜理解错了

能否实现这个效果?

运行这个bat文件,就会echo出这个bat文件的所在盘符.

以前有个人说过,用一个命令就可以了
强大的DOS......

아자 아자 화이팅! Fighting !
4 发表于 2008-06-23 08:52 ·  中国 江苏 苏州 昆山市 移动
初级用户
积分 27
发帖 13
注册 2008-06-21 09:52
18年会员
UID 120670
性别 男
状态 离线
@echo off
echo 当前路径是:%cd%
echo 当前盘符是:%cd:~0,1%
pause
5 发表于 2008-06-24 00:01 ·  中国 北京 丰台区 联通
新手上路
积分 10
发帖 4
注册 2007-05-28 20:41
19年会员
UID 89594
性别 男
状态 离线
感谢楼上的解答 XD~
强大的DOS......

아자 아자 화이팅! Fighting !
6 发表于 2008-06-24 00:09 ·  中国 江苏 苏州 电信
高级用户
★★
五星老土
积分 558
发帖 172
注册 2003-02-09 00:00
23年会员
UID 881
性别 男
来自 江苏
状态 离线
Originally posted by xlrtx at 2008-6-24 12:01 AM:
感谢楼上的解答 XD~


其实2楼是对的, 他没理解错。

而4楼不完全对,虽然大多数情况下是同样结果。

所以,我有必要提醒你一下,最应该感谢的人在2楼和我。
我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
7 发表于 2008-06-24 12:32 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
看问题不能凭想象,实践才能出真知。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
8 发表于 2008-06-24 23:15 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
echo %~d0
pause

详情参阅: for /? 第5次回车上的内容
第一高手 第二高手

论坛跳转: