実現したいこと
ERRORLEVELにPowershellの戻り値を反映させたいです。
前提
シェル側でIP疎通確認を行い、その結果を0,1で戻り値としてバッチファイルに返却する処理を行っています。
発生している問題・エラーメッセージ
エラーは特にありませんが、シェル側の戻り値がERRORLEVELに反映されず、全て1で返ってきてしまいます。
該当のソースコード
ip.confにはipアドレスを任意数分、縦に並べているイメージです。
バッチファイルよりシェルを呼び出しています。
check.bat
1@echo off 2for /f %%i in (.ip.conf) do ( 3 powershell ".netCheck.ps1 %%i;exit $LASTEXITCODE" 4 echo %%i : %ERRORLEVEL% 5)
netCheck.ps1
1Param( 2 [String]$ip 3) 4 5if( (Test-NetConnection $ip -WarningAction SilentlyContinue ).PingSucceeded ){ 6 exit 0 7}else{ 8 exit 1 9} 10
試したこと
シェルのexitは問題ないことを確認しました。
バッチファイルに戻ってきてから想定と異なる動きとなっているようです。
補足情報(FW/ツールのバージョンなど)
Powershell:5.1.22621.963

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/05/26 11:15