是否有批处理命令可以在没有整个路径的情况下读取根目录?
我想要一个批处理文件告诉我它是否在D:\
或E:\
。
我试图使用:
set mypath=%cd%
@echo %mypath%
Pause
但它只是说它所在的确切位置而不仅仅是根。
答案 0 :(得分:4)
以下是一些提供脚本当前目录的根目录的选项:
使用PushD
/ Popd
PushD\&Call Set "RootDir=%%CD%%"&PopD
Echo(%RootDir%
Pause
使用For
循环
For %%A In (%CD%) Do Set "RootDir=%%~dA\"
Echo(%RootDir%
Pause
使用变量扩展
Set "RootDir=%CD:~,3%"
Echo(%RootDir%
Pause
修改强>
再次阅读你的问题之后,我决定添加第四个例子。与其他三个不同的是,这提供了批处理文件位置的根目录。
Set "RootDir=%~d0\"
Echo(%RootDir%
Pause
答案 1 :(得分:2)
批处理文件所在的目录可能与cmd.exe运行的当前目录不同。
要使用批处理文件根路径:
for %%a in ("%0") do echo %%~da
要使用当前目录
echo "%cd:~0,3%"
答案 2 :(得分:2)
让我们不要忘记& REM技巧。
@ECHO OFF
set "root=%cd:\="&rem %
echo %root%