在 bat 中按 ctrl+c 后更改当前目录

Duo*_* Li 1 windows batch-file

我在 Windows 中有一个蝙蝠,它看起来像:

cd jetty
java -jar start.jar
Run Code Online (Sandbox Code Playgroud)

首先bat文件在c:/project/下,c:/project/下还有jetty目录。bat启动前,当前目录为c:/project/。bat 文件启动一个码头服务器。Ctrl+C 将停止服务器。但是现在当前目录是 c:/project/jetty。如果我想再次运行bat文件,我必须回到c:/project。如何在 Ctrl+C 后将目录更改回 c:/project。ps bat文件不能直接放在c:/project/jetty。谢谢。

MC *_* ND 5

通常cd ..java返回父文件夹的命令之后简单地包含一个应该可以工作,但也有可能Ctrl-C取消批处理文件。

您可以使用 setlocal

此命令用于保留当前环境内容(是的,它可以做更多事情,请参阅setlocal /?,但在这种情况下不需要),因此当批处理上下文结束或endlocal执行匹配时,对环境的更改将被丢弃。保留的元素之一是当前活动目录。

setlocal
  cd jetty
  java -jar start.jar
endlocal
Run Code Online (Sandbox Code Playgroud)

由于setlocal到达批处理脚本中的下一行或批处理文件终止时将被取消,因此在这两种情况下都将恢复先前的活动目录。