当我运行以下批处理脚本时
@echo off
cd /d D:\Home\Folder
echo %HOMEDRIVE%
pause
我明白了H:作为输出。但理想情况下应该是答案:。为什么会这样呢?
答案1
您正在发出两个不同的命令并期望得到相同的结果。
您不需要输入第一个,第二个语句仍然是 H:。
这是因为%主页%在登录时确定。它可以由域控制器设置,也可以是本地设置。
如果要返回当前文件夹,只需输入命令cd
或echo %CD%
如果你想改变%主页%到其他文件夹,例如当前文件夹,使用SET HOMEDRIVE=%CD%
或直接:SET HOMEDRIVE=D:\Home\Folder
请记住设置%主页%如果程序期望,则可能会产生意想不到的结果%主页%为 H:。
答案2
如果要确定当前驱动器,可以暂时转到根目录,存储当前目录,然后返回,如下所示:
pushd \
set MYDRIVE=%CD%
popd
变量MYDRIVE
末尾会有一个斜杠(而HOMEDRIVE
没有),但 Windows 会忽略路径中的多余斜杠,因此即使您最终尝试访问类似的东西D:\\some\path
,它仍然可以正常工作。