@mocamocalove

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PowerShell $lastexitcode に関する質問

Q&A

Closed

解決したいこと
powerShellでドライブを割り当てるための簡単なスクリプトを作成しています。
スクリプトは書けたのですが、コマンドの戻り値の操作が行えず困っています。
解決方法を教えて下さい。

発生している問題・エラー

exitで戻り値を設定しているが、
$lastexitcode で確認すると任意の設定した値が返ってこない。

上手く伝えられないので、私が行いたい事が書いてある参考のサイトです。
https://win.just4fun.biz/?PowerShell/PowerShell%E3%81%A7exit%E3%81%AE%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%83%BB%24lastexitcode

自分で試したこと
パワーシェルをコマンドプロンプトから立ち上げて echo %ERRORLEVEL%
 で確認しても指定した戻りは返ってきませんでした。

0 likes

2Answer

PowerShell でマウントしたコマンドのすぐ次で、
そのマウントしたドライブに読み込み or 書き込み ができるかを実行して、
その返り値を使えば良いと思います。

また、PowerShell を用いなくても コマンドプロンプトで

net use 〜

でマウントができるのでそちらを試すのもよいかと思います。

0Like

Comments

  1. @mocamocalove

    Questioner

    回答ありがとうございます。

    コマンドプロンプトで行えるのは知っておりますが、勉強中のためPowerShellを使っています。

    やりたいことは、
    スクリプトの中でエラー処理を書き(if分などで)
    たとえば
    exit 66 として処理を中断し
    $lastexitcodeで確認すると
    66と表示されるよな仕様にしたいのですが。。

    説明が下手で申し訳ありません。
  2. 作ったスクリプトを書いてもらえますか?
    確認しようがないです。

Windows 10 20H1 64bit で確認したところ99が返ってきました。
この方法で1が表示されるのはおかしいですね

aa.png

0Like

Comments

  1. @mocamocalove

    Questioner

    やはり、そうですよね。
    わざわざご確認ありがとうございます。
    もしかしたら、バージョンや設定の問題かもしれないので確認してみます。
  2. ExecutionPolicy を AllSigned, RemoteSigned, Unrestricted, Bypass
    全てで確認しましたが、全て期待通り99が返ってきました。

    おそらくウィルス対策ソフトかグループポリシーなどで
    割り込まれているのかと思います。
  3. @mocamocalove

    Questioner

    32bit版を使用していたので、表示されなかったようです。
    解決できました!ありがとうございます。

Your answer might help someone💌