Windows 命令:如何使用 chdir 推送当前目录以便稍后弹出?
Windows Command: how do I push current directory using chdir for popping later?
Context/Objective:
在 windows 7 中,我正在使用常规 windows 命令开发批处理脚本。在此批次中,我需要首先保存当前目录,以便在脚本完成后恢复它 运行。
我尝试过的目的是:
我尝试过使用 chdir、pushd 和 popd 命令使其工作。
尝试 1:
PUSHD CHDIR
REM 主脚本正文
POPD
结果: PUSHD 线路错误 "the system cannot find the path specified"
尝试 2:
SET curdir=CHDIR
PUSHD %curdir%
REM 主脚本正文
POPD
结果: PUSHD 行同样的错误"the system cannot find the path specified"
其他尝试:谷歌搜索也没有产生任何令人满意的结果。
问题:
我可以使用这些命令让它工作吗?
或者我需要使用另一组命令吗?
注意:我正在寻找仅使用 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
Context/Objective:
在 windows 7 中,我正在使用常规 windows 命令开发批处理脚本。在此批次中,我需要首先保存当前目录,以便在脚本完成后恢复它 运行。
我尝试过的目的是:
我尝试过使用 chdir、pushd 和 popd 命令使其工作。
尝试 1:
PUSHD CHDIR
REM 主脚本正文
POPD
结果: PUSHD 线路错误 "the system cannot find the path specified"
尝试 2:
SET curdir=CHDIR
PUSHD %curdir%
REM 主脚本正文
POPD
结果: PUSHD 行同样的错误"the system cannot find the path specified"
其他尝试:谷歌搜索也没有产生任何令人满意的结果。
问题:
我可以使用这些命令让它工作吗? 或者我需要使用另一组命令吗?
注意:我正在寻找仅使用 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