相关疑难解决方法(0)

使用IDE时从Powershell调用第三方可执行文件时出错

我有一个PowerShell脚本,它使用du.exe(最初来自Sysinternals的磁盘使用情况)来计算目录的大小.

如果我du c:\Backup在控制台中运行,它按预期工作,但在ISE或PowerGui中运行的相同代码行给出了预期的结果加上错误

+ du <<<<  c:\backup
+ CategoryInfo          : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Run Code Online (Sandbox Code Playgroud)

这是为什么?如何避免此错误?我尝试使用invoke-expression &,但是没有去.

谢谢您的帮助.

ide powershell du powergui

64
推荐指数
3
解决办法
5万
查看次数

$ LastExitCode = 0,但在PowerShell中$?= False.将stderr重定向到stdout会产生NativeCommandError

为什么PowerShell在下面的第二个例子中显示出令人惊讶的行为?

首先,一个理智行为的例子:

PS C:\> & cmd /c "echo Hello from standard error 1>&2"; echo "`$LastExitCode=$LastExitCode and `$?=$?"
Hello from standard error
$LastExitCode=0 and $?=True
Run Code Online (Sandbox Code Playgroud)

没有惊喜.我打印一条消息到标准错误(使用cmd's echo).我检查变量$?$LastExitCode.正如预期的那样,它们分别等于True和0.

但是,如果我要求PowerShell通过第一个命令将标准错误重定向到标准输出,我会得到一个NativeCommandError:

PS C:\> & cmd /c "echo Hello from standard error 1>&2" 2>&1; echo "`$LastExitCode=$LastExitCode and `$?=$?"
cmd.exe : Hello from standard error
At line:1 char:4
+ cmd <<<<  /c "echo Hello from standard error 1>&2" 2>&1; echo "`$LastExitCode=$LastExitCode and `$?=$?"
    + CategoryInfo          : NotSpecified: (Hello from …
Run Code Online (Sandbox Code Playgroud)

windows powershell command-line

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

在Windows PowerShell中忽略错误级别!= 0

我有一个运行外部EXE文件的脚本.当该EXE文件失败时(将errorlevel设置为1),PowerShell脚本将失败.

我正在运行curl.exe并得到这个:

  • CategoryInfo:NotSpecified:(%Total%... Time Current:String)[],RemoteException + FullyQualifiedErrorId:NativeCommandError

如何忽略/捕获外部EXE文件的失败并继续我的脚本?

powershell

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

标签 统计

powershell ×3

command-line ×1

du ×1

ide ×1

powergui ×1

windows ×1