Cmd 使用根命令窗口在新命令窗口中执行命令

Cmd 使用根命令窗口在新命令窗口中执行命令,cmd,Cmd,我正在尝试创建一个批处理脚本来运行我的Java文件。我发现没有办法阻止自动关闭批处理脚本(除了使用pause关键字,尽管它只是等待按键)。我还发现,启动一个新窗口只会导致主窗口关闭,而不会导致新窗口关闭,因此我希望在新窗口中执行命令SET/P file=Java file:(我通过使用start关键字获得了新窗口。有没有办法在不下载其他软件的情况下完成此操作?这是我想到的代码: cd "C:\Users\DEVDHRITI\Desktop\Files&Folders\HMMMM

我正在尝试创建一个批处理脚本来运行我的Java文件。我发现没有办法阻止自动关闭批处理脚本(除了使用pause关键字,尽管它只是等待按键)。我还发现,启动一个新窗口只会导致主窗口关闭,而不会导致新窗口关闭,因此我希望在新窗口中执行命令
SET/P file=Java file:
(我通过使用
start
关键字获得了新窗口。有没有办法在不下载其他软件的情况下完成此操作?这是我想到的代码:

cd "C:\Users\DEVDHRITI\Desktop\Files&Folders\HMMMMM\programs\java programmes"
set /P file=Java file to execute:
java %file%^.jar
start

我想你是在寻找:

cd "C:\Users\DEVDHRITI\Desktop\Files&Folders\HMMMMM\programs\java programmes"
start cmd /V:ON /K "@set /P "file=Java file to execute: " && java -jar !file!^.jar"
编辑:使用/V扩展并使用/K而不是/C保持cmd窗口打开

说明:要在另一个窗口中启动控制台进程并在该进程控制台结束后保持其打开状态,我们使用
start
命令启动另一个
cmd
进程。默认情况下,我们使用
/V:ON
使用延迟扩展,这意味着修改了变量(如我们提示的变量,
%file%
)将使用
(因此
!file!
而不是
%file%
)动态展开。我们使用
/K
告诉此cmd进程在提供的命令结束时不要关闭。对于此
cmd
进程,我们提供以下命令:

  • @set/p”file=要执行的Java文件:“

    这将要求启动jar文件名(不带扩展名)。
    @
    表示“不要在控制台stdout上回显命令本身”,以获得良好的显示效果

  • java-jar%file%^.jar

  • 这一个启动java解释器(JVM),使用jar文件的文件名,通过
    -jar
    参数、从上一个提示符生成的文件名和
    .jar
    扩展名来执行。这里的
    ^
    转义了
    ,在这里似乎没有用处,但您的脚本/env可能需要它


    我们用
    &&
    链接这两个命令,这意味着:\如果
    &&
    中的左命令成功(它以
    错误级别0退出),那么执行
    &&
    中的右命令,它在另一个bat文件自动关闭时工作,甚至不让我看到代码执行results@Dev然后
    start cmd/K“@set/P”file=Java要执行的文件:“&&Java-jar%file%^.jar”
    是你想要的吗?(/K而不是/C)它成功了,谢谢。我建议你也编辑你的主要答案,因为我会接受itbtw@Zilog80你能解释一下代码的意思吗???