%HOMEDRIVE% 没有提供预期的输出

%HOMEDRIVE% 没有提供预期的输出

当我运行以下批处理脚本时

@echo off
cd /d D:\Home\Folder
echo %HOMEDRIVE%
pause

我明白了H:作为输出。但理想情况下应该是答案:。为什么会这样呢?

答案1

您正在发出两个不同的命令并期望得到相同的结果。

您不需要输入第一个,第二个语句仍然是 H:。

这是因为%主页%在登录时确定。它可以由域控制器设置,也可以是本地设置。

如果要返回当前文件夹,只需输入命令cdecho %CD%

如果你想改变%主页%到其他文件夹,例如当前文件夹,使用SET HOMEDRIVE=%CD%或直接:SET HOMEDRIVE=D:\Home\Folder

请记住设置%主页%如果程序期望,则可能会产生意想不到的结果%主页%为 H:。

答案2

如果要确定当前驱动器,可以暂时转到根目录,存储当前目录,然后返回,如下所示:

pushd \
set MYDRIVE=%CD%
popd

变量MYDRIVE末尾会有一个斜杠(而HOMEDRIVE没有),但 Windows 会忽略路径中的多余斜杠,因此即使您最终尝试访问类似的东西D:\\some\path,它仍然可以正常工作。

相关内容