Batch file 批处理文件以读取其所在的根目录

Batch file 批处理文件以读取其所在的根目录,batch-file,Batch File,是否有一个批处理命令可以读取根目录而不需要整个路径 我想要一个批处理文件来告诉我它是在D:\还是E:\中 我尝试使用: set mypath=%cd% @echo %mypath% Pause 但是它只是说它所在的确切位置,而不仅仅是根目录。批处理文件所在的目录可能与当前目录cmd.exe不同 要获取批处理文件根路径,请使用: for %%a in ("%0") do echo %%~da 要获取当前目录,请使用 echo "%cd:~0,3%" 以下是一些选项,为您提供脚本当前目录的根目

是否有一个批处理命令可以读取根目录而不需要整个路径

我想要一个批处理文件来告诉我它是在
D:\
还是
E:\

我尝试使用:

set mypath=%cd%
@echo %mypath%
Pause

但是它只是说它所在的确切位置,而不仅仅是根目录。

批处理文件所在的目录可能与当前目录cmd.exe不同

要获取批处理文件根路径,请使用:

for %%a in ("%0") do echo %%~da
要获取当前目录,请使用

echo "%cd:~0,3%"

以下是一些选项,为您提供脚本当前目录的根目录:

使用
PushD
/
Popd

PushD\&调用集“RootDir=%%CD%%”&PopD
回显(%RootDir%)
暂停
对循环使用

对于(%CD%)中的%%A,请设置“RootDir=%%~dA\”
回显(%RootDir%)
暂停
使用变量展开

Set“RootDir=%CD:~,3%
回显(%RootDir%)
暂停
编辑

在再次阅读您的问题后,我决定添加第四个示例。与其他三个不同,这一个提供批处理文件位置的根目录

Set“RootDir=%~d0\”
回显(%RootDir%)
暂停

让我们不要忘记&REM技巧

@ECHO OFF
set "root=%cd:\="&rem %
echo %root%

我喜欢这个!
:)
非常有魅力!谢谢!