首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PowerShell &批处理文件学习wget命令错误

使用PowerShell &批处理文件学习wget命令错误
EN

Stack Overflow用户
提问于 2013-10-07 23:03:47
回答 2查看 1.3K关注 0票数 0

我有一个调用.cmd文件的power shell脚本。这里的建筑看上去就像

-PowerShell文件码

$ /profile =‘/savecred /user:myDomain\myuser "cmd /c C:\Users\myuser\code.cmd"’Start-Process cmd.exe $arguments -Wait‘

  • .cmd码文件

在这里,代码调用wget请求来下载文件。

wget .(这里的指挥)

我的目标是在PowerShell命令提示符下(在完成启动进程命令之后)了解wget命令是成功执行还是在执行过程中发生了诸如401、404之类的错误。这里我特别不感兴趣的错误类型,只是需要知道是否发生了错误。

EN

回答 2

Stack Overflow用户

发布于 2013-10-07 23:26:28

不确定这是否是您所要求的,但是您可以使用$测试最后一个命令的零返回代码吗?变量,如果返回代码不是零,它将是$false。

假设您有一个test.cmd文件,它只返回5:

代码语言:javascript
复制
exit 5

如果在PowerShell中运行它,可以查看$的结果吗?

代码语言:javascript
复制
if ($?) {"No error"} else {"some error"}

以下是获取更多信息的链接:http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/12/powershell-error-handling-and-why-you-should-care.aspx

票数 0
EN

Stack Overflow用户

发布于 2013-10-07 23:45:55

在启动进程中使用$?是行不通的:

代码语言:javascript
复制
C:\PS> Start-Process cmd.exe -arg '/c exit 5'
C:\PS> $?
True

如果要使用开始进程,可以选择以下路线:

代码语言:javascript
复制
C:\PS> $p = Start-Process cmd.exe -arg '/c exit 5' -PassThru -Wait
C:\PS> $p.ExitCode
5

或者您可以直接调用cmd.exe:

代码语言:javascript
复制
C:\PS> cmd /c exit 5
C:\PS> $LASTEXITCODE
5

在最后一个例子中,您可以使用$?,但我更喜欢$LastExitCode,因为一些大脑受损的控制台应用程序成功返回非零值。关于调用cmd.exe和使用$LASTEXITCODE,请参见此ScriptingGuy博客文章

对于一个方便的CheckLastExitCode函数,可以通过这篇博客文章查看该函数的实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19236304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档