【问题标题】:change current directory after ctrl+c in bat在 bat 中 ctrl+c 后更改当前目录
【发布时间】:2015-11-17 05:36:33
【问题描述】:

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

cd jetty
java -jar start.jar

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

【问题讨论】:

    标签: windows batch-file


    【解决方案1】:

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

    你可以使用setlocal

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

    setlocal
      cd jetty
      java -jar start.jar
    endlocal
    

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

    【讨论】:

    • 感谢您的关注和回答。我的问题解决了。
    • 谢谢,这正是我所需要的——完美运行!
    【解决方案2】:

    使用:

    cd jetty
    java -jar start.jar
    cd..
    

    【讨论】:

    • 感谢您的关注和回答。
    猜你喜欢
    • 2023-04-01
    • 2011-03-29
    • 1970-01-01
    • 2011-05-25
    • 2014-01-14
    • 2010-10-05
    • 1970-01-01
    相关资源
    最近更新 更多