Windows命令:如何使用chdir将当前目录推入以后popup?

背景/目的:

Windows 7中,我正在开发一个使用常规Windows命令的批处理脚本。 在这个批处理中,我需要首先保存当前目录,以便脚本完成运行时可以恢复。

我曾经试过的:

我试图使用chdir,pushd和popd命令使其工作。

  • 试试1:

    PUSHD CHDIR

    REM主要脚本正文

    POPD

    结果: PUSHD行出错“系统找不到指定的path”

  • 试试2:

    SET curdir = CHDIR

    PUSHD%curdir%

    REM主要脚本正文

    POPD

    结果: PUSHD线上出现同样的错误“系统找不到指定的path”

  • 其他尝试:也谷歌search没有得到任何满意的结果。

问题:

我可以使用这些命令工作吗? 还是有另一套我需要使用的命令?

注:我正在寻找一个解决scheme,只使用Windows本地命令,第三方工具或PowerShell不是一个选项。

你可以使用. 代表目前的方向。

尝试这个:

 PUSHD . REM The rest of you script POPD 

你的问题是你需要使用CD命令(而不是CHDIR),不要忘记把它包装在%s中。通常认为它们是相同的,但是它们的确有些不同。

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

 @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