批处理脚本运行的驱动器字母怎样获取?

14

我有一个批处理脚本存放在光盘上,每当我尝试运行它并输入%~d0时,它返回的是 C: 驱动器而不是 F: 驱动器,F: 是我的光驱。

有什么方法可以找到光驱的盘符?


使用%~d0的确切命令是什么? - James L.
2个回答

26

通过以下代码从当前目录获取驱动器盘符:

%cd:~0,2%

%~dp0在批处理中非常有用:它是批处理文件所在的文件夹。

也许在脚本的顶部,可以做类似以下的事情:

set _SCRIPT_DRIVE=%~d0
set _SCRIPT_PATH=%~p0

然后将其输出以进行调试。%~d0 应该会给你想要的结果,但我提到的其他选项可能有助于解决问题。


1
不过,%cd% 命令不是给出你正在执行的路径吗?但它对于获取实际批处理文件的路径来说是完全不准确的。例如,Windows XP 似乎存在一个奇怪的错误,如果你将一个文件拖放到程序/脚本上,以便将该拖放文件作为参数传递给程序执行,那么该程序将神秘地从 c:\Documents and Settings\(用户名) 目录启动,而不是从它自己的文件夹启动。 - Nyerguds
1
似乎自从XP以来就发生了变化,但在Win7中,它似乎是从参数文件的路径执行... 这仍然是错误的。 - Nyerguds

1

您可以使用%~dp0来获取当前工作目录:

%~d0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接