【发布时间】:2019-06-26 00:35:38
【问题描述】:
我在 Windows 10 上使用 GCC 从 sublimetext 3 运行 C 代码,我希望外部 cmd 在运行 exe 后显示退出代码。
这是我的 sublime-build 文件:
{
"shell_cmd" : "gcc -Wall -pedantic $file_name -o ${file_base_name}",
"working_dir" : "$file_path",
"variants":
[
{
"name": "Run",
"shell_cmd": "gcc -Wall -pedantic $file_name -o ${file_base_name} && start cmd /k ${file_path}/${file_base_name} "
}
]
}
我尝试过这样的事情:
"shell_cmd": "gcc -Wall -pedantic $file_name -o ${file_base_name} && start cmd /k ${file_path}/${file_base_name} & echo %errorlevel% "
这个问题是退出代码出现在 sublimetext shell 中,总是显示0。我猜是外部 cmd 退出代码。
我想在新的 cmd 中执行 echo %errorlevel% 部分并显示我的 exe 的退出代码,但我不知道该怎么做。
编辑: 这是截图:
我的 main.exe 在新的 cmd 中运行,并且回显在 sublimetext 自己的控制台中完成。
我想这些问题可以更好地总结:
1- 如何编写此脚本以便 cmd 可以执行第二个命令?
2-如何打开它,运行我的 .exe,然后才显示退出代码?
编辑 2:
在这里,您可以看到我的代码以及 sublimetext 的内部 cmd 使用我的 sublime-build 文件中的命令调用的外部 cmd。
我在这个外部 cmd 中手动输入了 echo %errorlevel%。
我试图实现的目标是修改我的 sublime-build 文件中的命令,该文件将从 sublimetext 的内部 cmd 执行,这样外部 cmd 调用运行我的代码,然后才评估echo %errorlevel%,所有这个自动的。
【问题讨论】:
-
尝试使用
call echo %^ErrorLevel%,或者使用cmd /V /C和echo !ErrorLevel!。也可以尝试删除start,或者改用start "" /WAIT。 -
你试过我的答案了吗?
-
我试过这些,我不能在行中添加双引号,其他建议也没有帮助。我想这里真正的问题是: 1-我如何编写这个脚本以便 cmd 可以执行第二个命令? 2- 如何打开它,运行我的 .exe,然后才显示退出代码?
-
@randomLainist
"shell_cmd": "gcc -Wall -pedantic $file_name -o ${file_base_name} && cmd /v /k "${file_path}/${file_base_name} & echo !errorlevel!""
标签: cmd sublimetext3 exit-code