質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

1回答

1496閲覧

msgboxを繰り返し呼び出す場合の効率的な記述について

toraoo

総合スコア21

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2017/06/02 11:39

編集2017/06/06 00:26

当方初心者で基本的な質問となり恐縮ですが、どうぞよろしくお願いします。

現状、powershell でスクリプトを作成しています。
実行ユーザーに対し、(例えば remove-xxx 等コマンドレットの実行前に) y/n の確認ダイアログを表示したいのですが、うまく動作せずに困っています。
お手数ですが、適切な記述についてご支援を頂けますと幸いです。

※ 実行するコマンドレットによっては -confirm オプション等が用意されていない場合もあるため、別途 意図的に表示させたいです。


Add-Type -AssemblyName system.windows.forms
function MBox {
$msg1 = "本当に実行しますか ?"
$ttle1 = "実行前確認"
$yn = [System.Windows.Forms.MessageBox]::Show($msg1,$ttle1, "YesNo", "question")
write-host "実行確認" $yn ## ← ここでは yes/no が返っています。
}

$j1 = Get-ADuser -filter *
$yn1 = MBox ## ← msgbox が無事表示されます。
if ($yn1 -like "y*"){
$j1 |Export-Csv -Path c:\get-aduser.csv -Encoding Unicode -Confirm
}else{}


[補足]
関数 MBox 設定時の $yn では msgbox の返り値を得ているようなのですが、後で MBox を呼び出して返り値が yes の場合に CSV にエクスポートしようとすると、yes で判定されずに終了しています。

※ ご質問させて頂いた意図としては、確認ダイアログを表示する度に

$yn = [System.Windows.Forms.MessageBox]::Show($msg1,$ttle1, "YesNo", "question")

↑ のような記述を簡潔にしたいというものになります。
よろしくお願いします。


過去ログを丁寧に見直していたところ、気になる記載がありましたので、確認してみます。

https://teratail.com/questions/45979

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

MBox の戻り値がありません。
write-host の次の行に $yn と書いて下さい。

投稿2017/06/03 08:41

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toraoo

2017/06/05 10:10

ありがとうございます !! お陰様で動作しました! ググった際 msgbox の戻り値は明記しなくても取得可能といった情報を目にしたのですが、こういう値はきちんと書くべきなのですね。。よく理解しておらず、お恥ずかしいです。。 大変助かりました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問