背景/目的:
在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