使用BAT/CMD脚本我可以简单地使用"msiexec /i <whatever.msi> /quiet /norestart"然后检查%errorlevel%结果.
与VBScript使用Wscript.Shell对象Run()的方法,我能得到这样的结果:
"result = oShell.Run("msiexec /i ...", 1, True)"
Run Code Online (Sandbox Code Playgroud)
如何使用PowerShell执行此操作?
我正在使用Intellij 9.0.4我从SVN检出了一个项目,设置了tomcat(它在本地运行),现在我正在尝试Make(或编译)但它一直给我错误:编译器内部错误.进程以退出代码3终止.我已经搜索了互联网,无法获得此类型的退出代码3.
你有什么主意吗?或者我应该检查哪个日志文件以查看问题的详细信息?谢谢
解决:我明白了.只需增加编译器的最大堆大小(设置 - >编译器 - > Java编译器)
我需要使用PowerShell -Command"&scriptname"运行一个脚本,如果我从PowerShell返回的退出代码与脚本本身返回的退出代码相同,我真的很喜欢它.不幸的是,如果脚本返回0,则PowerShell返回0;如果脚本返回任何非零值,则PowerShell返回1,如下所示:
PS C:\test> cat foo.ps1
exit 42
PS C:\test> ./foo.ps1
PS C:\test> echo $lastexitcode
42
PS C:\test> powershell -Command "exit 42"
PS C:\test> echo $lastexitcode
42
PS C:\test> powershell -Command "& ./foo.ps1"
PS C:\test> echo $lastexitcode
1
PS C:\test>
Run Code Online (Sandbox Code Playgroud)
使用[Environment] :: Exit(42)几乎可以正常工作:
PS C:\test> cat .\baz.ps1
[Environment]::Exit(42)
PS C:\test> powershell -Command "& ./baz.ps1"
PS C:\test> echo $lastexitcode
42
PS C:\test>
Run Code Online (Sandbox Code Playgroud)
除了脚本以交互方式运行时,它将退出整个shell.有什么建议?
我是android studio的新手.当我尝试在模拟器上的android studio中运行我的第一个程序时,我收到此错误.
我已经搜索了其他评论,并尝试将build.gradle从24.0.0减少到23.0.3,如下所示,但它仍然无效.我正在使用Nexus 5X API 23.
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
}
Run Code Online (Sandbox Code Playgroud)
显示的错误是:
无法在模拟器中启动AVD.
Output:
emulator: WARNING: userdata partition is resized from 756 M to 800 M ERROR: resizing partition e2fsck failed with exit code 8
Hax is enabled
Hax ram_size 0x60000000
HAX is working and emulator runs in fast virt mode.
emulator: Listening for console connections on port: 5554
emulator: Serial number of this emulator (for ADB): emulator-5554
Run Code Online (Sandbox Code Playgroud) android exit-code android-emulator run-app android-studio-2.2
如果赋值是函数中的局部变量,如何在bash中检查命令替换的退出代码?
请参阅以下示例.第二个是我想检查退出代码的地方.
有人有一个良好的解决方案或正确的解决方案吗?
$ function testing { test="$(return 1)"; echo $?; }; testing
1
$ function testing { local test="$(return 1)"; echo $?; }; testing
0
Run Code Online (Sandbox Code Playgroud) 根据Rust 参考资料,
如果
main存在函数(snip),并且其返回类型必须是以下类型之一:
()
Result<(), E> where E: Error
但它没有说明当main()return()或Ok(())时会发生什么Err(<value>)。
据我测试,
() |
Ok(()) |
Err(<value>) |
|
|---|---|---|---|
| 退出状态 | 0 | 0 | 1 |
| 附加行为 | - | - | Error: <value>被打印到stderr |
这些行为是否在某些文档中定义、明确解释或保证?特别是,我可以假设
返回时程序总是以1状态退出?main()Err(<value>)
main()返回时显示的错误消息Err(<value>)始终是以下形式Error: <value>?
笔记:
我想要某种有据可查的保证,而不是经验性的解释。这就是我添加#language-lawyer标签的原因。
这个问题不是关于什么时候应该使用()以及什么时候应该使用Result<(), E>?或诸如此类。如您所知,人们可以在许多文档或教程中找到此类问题的答案(或至少是提示或标准)。
更新:
TerminationTrait 最终在 Rust 1.61.0 中稳定下来(来源)。
类似于$?在Linux中,有没有办法在Windows批处理文件(.bat)中获取程序的退出状态?
例如,程序System.exit(0)成功执行,System.exit(1)如果失败,如何将这些退出值存储在.bat文件中?
我们假设我有一个bash脚本,我称之为:
bash -c "some_command"
do something with code of some_command here
Run Code Online (Sandbox Code Playgroud)
是否有可能获得代码some_command?我不是some_command直接在运行脚本的shell中执行,因为我不想改变它的环境.
我正在用C#编写一个checkout,build和deployment应用程序,并且需要知道检测我的调用msbuild.exe是否成功的最佳方法.我试图使用该过程中的错误代码,但我不确定这是否始终准确.
有没有办法(通过下面的代码),我可以判断是否msbuild.exe成功完成?
try
{
Process msbProcess = new Process();
msbProcess.StartInfo.FileName = this.MSBuildPath;
msbProcess.StartInfo.Arguments = msbArguments;
msbProcess.Start();
msbProcess.WaitForExit();
if (msbProcess.ExitCode != 0)
{
//
}
else
{
//
}
msbProcess.Close();
}
catch (Exception ex)
{
//
}
Run Code Online (Sandbox Code Playgroud) 我的测试脚本如下所示:
import os
import sys
from unittest import defaultTestLoader as loader, TextTestRunner
path_to_my_project = os.path.dirname(os.path.abspath(__file__)) + '/../'
sys.path.insert(0, path_to_my_project)
suite = loader.discover('my_project')
runner = TextTestRunner()
runner.run(suite)
Run Code Online (Sandbox Code Playgroud)
如果我运行此脚本,则输出为:
$ python3 runtest.py
.....F.....
======================================================================
FAIL: test_insert (fate.test.test_operators.OperatorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/chiel/Projects/tfate/libs/fate/../fate/test/test_operators.py", line 16, in test_insert
self.assertEqual(expected, self.session.text[:14])
AssertionError: 'Foo import sys$' != 'Foo import sys'
- Foo import sys$
? -
+ Foo import sys
----------------------------------------------------------------------
Ran 12 tests in 0.030s
FAILED (failures=1)
Run Code Online (Sandbox Code Playgroud)
退出代码为零:
$ echo $?
0 …Run Code Online (Sandbox Code Playgroud) exit-code ×10
bash ×2
powershell ×2
android ×1
batch-file ×1
c# ×1
java ×1
msbuild ×1
msiexec ×1
process ×1
python ×1
python-3.x ×1
return-value ×1
run-app ×1
rust ×1
scripting ×1
unit-testing ×1
windows ×1