2017-10-03 29 views
0

VBScriptでCreateObject("WScript.Shell").Run(strCMD, 0, True)を実行すると、PowerShellスクリプトから成功または失敗のコードを取得しようとしています。VBScriptから実行した場合のPowerShell終了コード

私はExitが終了コードを生成したと考えましたが、PSスクリプトをExit 9で終了すると、上記のVBScriptに返された値はまだ0です。

ザ・VBScriptがある:

strCmd = "powershell.exe -noLogo -executionpolicy bypass -file ""\\Mac\Px\Support\Px Tools\Dev 3.3.#\_Spikes\TestMessage.ps1"" -message:""I'm ALIVE""" 
result = CreateObject("WScript.Shell").Run(strCMD, 0, True) 
msgBox result 

答えて

0

これを試してみてください:

Set wso=CreateObject("WScript.Shell") 
rc=wso.Run(strCMD, 0, True) 
MsgBox "returncode=" & rc 
+0

exit 123 

。私の変数は異なりますし、CreateObjectをインライン展開していますが、これは同じ機能です。実際のコードを表示するようにOPを更新しました。 – Gordon

+0

最も単純な.ps1( 'exit 9')でテストして動作します。あなたの.ps1には何がありますか? – SBF

+0

私はちょうど出口9でテストしました。まだ喜んで、唯一返されるのは0です。 ところで、コメントのコードフォーマットはどのようになっていますか? ;) – Gordon

1

代わりExit

のあなたのpsのスクリプトで使用Return "Your Value"に印刷されますどのようなものを返しますケアPowerShellを取りますコンソール

+0

guiwhatsthatを使用してください。Exit、Return、Write-Hostは試していません。いずれもVBScriptの.Runメソッドでは動作しません。これらは実際にあなたのために働いていますか? FWIW、私はPS 2.0を使用しています。私はWindows 10のVMをスピンアップし、現在のPSでこれをテストする必要があると思います。おそらくPS 2.0のバグだと思うかもしれない。 – Gordon

+0

'return'は動作しません - exitにする必要があります – SBF

+0

私はpowershellを使って簡単な例を作りました。私はリターンで戻り値を得て、出口で私は1つも持っていませんでした。メモリターンはあなたのスクリプトを終了しません – guiwhatsthat

0

私がやっているものを基本的にだTestMessage.ps1

関連する問題