0

.cmd ファイルを呼び出すパワー シェル スクリプトがあります。ここでアーキテクチャは次のようになります

-PowerShell ファイル コード

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

  • .cmd コード ファイル

ここで、コードは wget リクエストを呼び出してファイルをダウンロードします

wget .....(コマンドはこちら)

私の目標は、PowerShell コマンド プロンプト (Start-Process コマンドの完了後) で、wget コマンドが正常に実行されたか、実行中に 401、404 などのエラーが発生したかを知ることです。ここでは、エラーの種類には特に関心がありません。エラーが発生したかどうかを知る必要があるだけです。

4

2 に答える 2

0

Start-Process での使用$?は機能しません。

C:\PS> Start-Process cmd.exe -arg '/c exit 5'
C:\PS> $?
True

Start-Process を使用する場合は、次のルートに進むことができます。

C:\PS> $p = Start-Process cmd.exe -arg '/c exit 5' -PassThru -Wait
C:\PS> $p.ExitCode
5

または、cmd.exe を直接呼び出すこともできます。

C:\PS> cmd /c exit 5
C:\PS> $LASTEXITCODE
5

この最後の例では使用できますが、一部の脳が損傷したコンソール アプリは成功のためにゼロ以外を返すので、私は$?それを好みます。$LastExitCodecmd.exe の呼び出しと $LASTEXITCODE の使用については、このScriptingGuy ブログ投稿を参照してください。

便利なCheckLastExitCode関数については、関数の実装についてこのブログ投稿を参照してください。

于 2013-10-07T23:45:55.233 に答える