Windows 命令:如何使用 chdir 推送当前目录以便稍后弹出?

Windows Command: how do I push current directory using chdir for popping later?

Context/Objective:

在 windows 7 中,我正在使用常规 windows 命令开发批处理脚本。在此批次中,我需要首先保存当前目录,以便在脚本完成后恢复它 运行。

我尝试过的目的是:

我尝试过使用 chdir、pushd 和 popd 命令使其工作。

问题:

我可以使用这些命令让它工作吗? 或者我需要使用另一组命令吗?

注意:我正在寻找仅使用 windows 本机命令的解决方案,第三方工具或 powershell 不是一个选项。

可以用.表示当前目录。

试试这个:

PUSHD .

REM The rest of you script

POPD

你的问题是你需要使用 CD 命令(而不是 CHDIR)并且不要忘记用 % 包裹它。通常认为它们是相同的,但是他们确实在这方面略有不同。

在批处理文件中尝试以下示例:

@echo off

echo Initial directory set to:
cd "%UserProfile%\Desktop"
echo   `%cd%`
echo.

pushd %CD%

echo Changing to %AppData%
REM main script body
cd /D %AppData%
echo   `%cd%`
echo.

echo Changing to %LocalAppData%
cd /D %LocalAppData%
echo   `%cd%`
echo.

echo.
echo About to POPD
pause
POPD
echo   `%cd%`
echo.

我应该注意到@aphoria 的回答同样有效。

@aphoria 和@wasatchwizard 的工作解决方案。希望我可以将两者都标记为答案。谢谢两位!

我将它们合并为一个,供那些 运行 遇到相同问题的人使用。

选项 1:

PUSHD .
REM main scripts body
POPD

选项 2:

PUSHD %cd%
REM main scripts body
POPD