标签: exit-code

当使用-File参数调用时,如何让PowerShell返回正确的退出代码?

如果使用-File参数调用,Powershell将在发生错误时返回0退出代码.这意味着我的构建是绿色的,它不应该是:(

例如:

(在wtf.ps1中)

$ErrorActionPreference = "Stop";   
$null.split()
Run Code Online (Sandbox Code Playgroud)

(CMD)

powershell -file c:\wtf.ps1  
You cannot call a method on a null-valued expression.
At C:\wtf.ps1:3 char:12
+ $null.split <<<< ()
    + CategoryInfo          : InvalidOperation: (split:String) [], ParentConta
   insErrorRecordException
    + FullyQualifiedErrorId : InvokeMethodOnNull


echo %errorlevel%  
0

powershell c:\wtf.ps1  
You cannot call a method on a null-valued expression.
At C:\wtf.ps1:3 char:12
+ $null.split <<<< ()
    + CategoryInfo          : InvalidOperation: (split:String) [], ParentConta
   insErrorRecordException
    + FullyQualifiedErrorId : InvokeMethodOnNull


echo %errorlevel%  
1
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

(我已经尝试了前两页的每个想法:https://www.google.co.uk/search?q …

powershell exit-code

15
推荐指数
2
解决办法
2万
查看次数

当没有使用Environment.Exit()时,.net程序可以使用哪些退出代码?

如果.net程序在终止之前未能明确设置退出代码(通过调用Environment.Exit()/ Appliation.Current.Shutdown()/ ...),那么该进程的退出代码是什么?

正常终止是否总是导致退出代码为零,以及其他可能的情况是什么?

根据Hans Passant 相关问题获得ExitCode From Exception Handler回答:" 如果程序在异常上死亡,则其退出代码通常与底层异常错误代码相同 ".

因此,一个unaugth异常可以输出退出代码.这是的情况,并始终保证是底层的异常错误代码异于零,并在特定的范围内?

是否有其他情况,.net框架或Windows可以自动设置另一个退出代码,例如一些非异常相关的崩溃(可能吗?),还是强制任务终止?

换句话说,我可以通过退出代码确定程序是否以任何异常方式终止?
或者如果在某些异常情况下也可能出现零退出代码,我是否可以Environment.Exit(somevalue)在程序的所有正常终止路径中包含a,并确保在崩溃的情况下永远不会出现此退出代码?


动机:
由于并非所有的exeptions都可以在没有严重变通方法的情况下被捕获,并且由于除了未被捕获的激活之外可能还有其他原因导致程序突然终止,因此确保所有代码路径都调用Environment.Exit()是不可能的.这就是为什么我有兴趣确定是否可以使用退出代码可靠地判断程序是否正常退出.

.net c# crash exit-code

15
推荐指数
1
解决办法
2318
查看次数

如何获得"Invoke-Expression"状态,成功还是失败?

Invoke-Expression 将返回被调用的命令的所有文本.

但是,如何获得系统返回值是否已成功执行此命令或失败?在CMD中,我可以%errorlevel%用来获取外部命令执行状态.PowerShell怎么样?

powershell exit-code

14
推荐指数
4
解决办法
2万
查看次数

如何获取已退出的docker容器的数字退出状态?

当容器退出时,docker ps -a显示其退出代码(滚动

$ docker run ubuntu bash -c "exit 1"
CONTAINER ID   IMAGE    COMMAND              CREATED        STATUS                     PORTS                     NAMES
c2c769c4b9ef   ubuntu   "bash -c 'exit 1'"   6 seconds ago  Exited (1) 3 seconds ago                             happy_fermat
Run Code Online (Sandbox Code Playgroud)

如何以编程方式获取数字退出代码,而不会出现容易出错grepcut-ing?

exit-code docker

14
推荐指数
4
解决办法
8900
查看次数

通过管道从子shell获取退出代码

如何wget从子shell进程获取退出代码?

所以,主要问题是$?等于0.哪里可以$?=8建立?

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "$?"
0
Run Code Online (Sandbox Code Playgroud)

tee实际上它没有用.

$> OUT=$( wget -q "http://budueba.com/net" ); echo "$?"
8
Run Code Online (Sandbox Code Playgroud)

但是${PIPESTATUS}数组(我不确定它与那种情况有关)也不包含该值.

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[1]}"    

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[0]}"
0

$> OUT=$( wget -q "http://budueba.com/net" | tee -a "file.txt" ); echo "${PIPESTATUS[-1]}"
0
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是 - 如何wget通过tee子shell …

bash pipe exit-code tee subshell

13
推荐指数
2
解决办法
7692
查看次数

当删除失败时,"rd"退出并将errorlevel设置为0,等等

我正在编写批处理(.bat)脚本,我需要处理删除文件夹失败的情况.我正在使用%errorlevel%捕获退出代码,但在rd命令的情况下它似乎不起作用:

C:\Users\edo\Desktop>rd testdir
Directory is not empty

C:\Users\edo\Desktop>echo %errorlevel%
0
Run Code Online (Sandbox Code Playgroud)

为什么?你有什么建议?

windows error-handling cmd batch-file exit-code

13
推荐指数
2
解决办法
9728
查看次数

C中退出代码11的含义?

C中退出代码11的一般含义是什么?我环顾四周,无法找到明确的答案,所以我想我会在这里问.当我尝试向向量添加元素时.

c exit-code segmentation-fault

13
推荐指数
3
解决办法
4万
查看次数

如何判断bash脚本中的任何命令是否失败(非零退出状态)

我想知道bash脚本中的任何命令是否以非零状态退出.

我想要类似于set -e功能的东西,除了当命令以非零状态退出时我不希望它退出.我想让它运行整个脚本,然后我想知道:

a)所有命令以退出状态0退出
-
或- b)一个或多个命令以非零状态退出


例如,给出以下内容:

#!/bin/bash

command1  # exits with status 1
command2  # exits with status 0
command3  # exits with status 0
Run Code Online (Sandbox Code Playgroud)

我想要运行所有三个命令.运行脚本后,我想要一个指示,即至少有一个命令以非零状态退出.

bash exit-code sh exitstatus

13
推荐指数
1
解决办法
3912
查看次数

退出状态是否可观察到行为?

C 2018 5.1.2.3 6说:

符合实施的最低要求是:

  • 根据抽象机器的规则严格评估对易失性对象的访问.

  • 在程序终止时,写入文件的所有数据应与根据抽象语义执行程序的结果相同.

  • 交互设备的输入和输出动态应按照7.21.3的规定进行.这些要求的目的是尽快出现无缓冲或行缓冲输出,以确保在程序等待输入之前实际出现提示消息.

这是该程序的可观察行为.

从表面上看,这不包括程序的退出状态.

关于exit(status),7.22.4.4 5说:

最后,控制权返回给主机环境.如果值status为零或EXIT_SUCCESS,则返回状态成功终止的实现定义形式.如果值statusEXIT_FAILURE,地位的实现定义的形式成功终止返回.否则返回的状态是实现定义的.

标准没有告诉我们这是可观察行为的一部分.当然,这种exit行为纯粹是C的抽象机器的描述是没有意义的; 除非在环境中可观察到,否则向环境返回值没有意义.所以我的问题不在于退出状态是否可观察到这是否是C标准对可观察行为的定义中的缺陷.或者标准中的其他地方是否有适用的文字?

c program-entry-point exit-code exit language-lawyer

13
推荐指数
1
解决办法
311
查看次数

使用Environment.ExitCode与从Main返回int

我打算在我的一个shell脚本中使用C#可执行文件的返回码.我有两个选择:

从main方法返回一个int值

class MainReturnValTest
{
    static int Main()
    {
        //...
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

(要么)

使用带退出代码的Environment.Exit

class MainReturnValTest
{
    static void Main()
    {
        //...
        Enviroment.Exit(exitCode);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用上述任何方法从可执行文件返回值是否可以?或者其中一个比其他人更受欢迎?

c# exit-code

12
推荐指数
2
解决办法
1万
查看次数