- PR -

バッチファイルの実行確認について

投稿者投稿内容
elfy
常連さん
会議室デビュー日: 2004/09/23
投稿数: 25
投稿日時: 2005-03-16 23:20
こんばんは。
すでに作成済みのバッチファイルがあります。
これを実行すると有無を言わさずいきなり実行されます。
そこで、実行後に一度確認のメッセージを表示させ、
キー入力で「y」なら本当に実行し「n」なら実行を取りやめるように
したいと考えています。
※バッチファイルが多数あるので、バッチファイルの最初に
 同じ処理を数行付け加えるだけで実現したいと考えております。
 (他のファイルにもコピー&ペーストのみで処理を付け加えたい為)

何か良い方法がありましたらご教授願えますでしょうか。

また、上記はコマンドプロンプト上の入力ですが、
バッチファイルの実行確認をポップアップ表示させ選択させるようなことは
できるのでしょうか。
 例:「実行しますか?」→「はい」or「いいえ」を選択 →「実行」or「中止」

非常に基本的なことかもしれませんが、ご指導のほど宜しくお願い致します。
elfy
常連さん
会議室デビュー日: 2004/09/23
投稿数: 25
投稿日時: 2005-03-16 23:21
すみません。
OSは、Windows2000Serverです。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2005-03-16 23:42
こんばんわ.
引用:

elfyさんの書き込み (2005-03-16 23:20) より:

また、上記はコマンドプロンプト上の入力ですが、
バッチファイルの実行確認をポップアップ表示させ選択させるようなことは
できるのでしょうか。
 例:「実行しますか?」→「はい」or「いいえ」を選択 →「実行」or「中止」


popup は無理ですけど,choice command なんてドウでしょう?
yes/no だけでなく,1/2/3 などの選択肢も使えます.
errorlevel で分岐処理すると結構便利だったりします.

以上,ご参考までに.
綾瀬
ぬし
会議室デビュー日: 2002/07/31
投稿数: 393
お住まい・勤務地: どっちも3階
投稿日時: 2005-03-17 00:22
こんにちは。

今手元に素のWin2000Serverが無いので確証が無いのですが、
choiceコマンドは標準では無いかもしれません。
(2000Proだとリソースキット入れないと使えないのでServerも同じかなと思ってます)

choiceが標準であればこれを使うのが一番要望に合っていると思います。
標準で無くてもリソースキットが手に入るのであれば大丈夫かな?

choiceが使えないとなると、今思いつくのはpauseで一時停止ですかね。
この場合Y/N判定はできなくて、何かキーを押すと先に進んでしまいます。
中止するためにはctrl+cするしかありません。

ポップアップの話がありましたが、Y/N判定でYだったらバッチ呼び出す
WSHとか作ってそれを実行って言うのはどうでしょう?


[ メッセージ編集済み 編集者: 綾瀬 編集日時 2005-03-17 00:34 ]
elfy
常連さん
会議室デビュー日: 2004/09/23
投稿数: 25
投稿日時: 2005-03-17 00:45
kaz さん、綾瀬さん、ありがとうございます。
choiceコマンドはサポートされていないようです。
http://forum.nifty.com/fpcu/dosvcmd/choice.htm

また、リソースキットですが、
http://www.microsoft.com/windows2000/techinfo/reskit/tools/default.asp
を見ましたところ無償ではダウンロードできないようです。

>ポップアップの話がありましたが、Y/N判定でYだったらバッチ呼び出す
>WSHとか作ってそれを実行って言うのはどうでしょう?

検討してみます。
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2005-03-17 00:47
WSHのVBScriptで作ってみました。
ほぼ http://www.atmarkit.co.jp/fwin2k/operation/wsh07/wsh07_03.html と同じ。

OKで終了コード0、Cancelで終了コード1が返ります。

これを「cscript choise.vbs」ってな具合に呼び出して、errorlevelをチェック
すればできそうです。

コード:
Set objShell = WScript.CreateObject("WScript.Shell")
iBtn = objShell.Popup( _
   "中止する場合は「キャンセル」を押してください。", _
   0, "処理を実行しますか?", vbOKCancel+vbQuestion)

 Select Case iBtn
   Case vbOK
     WScript.Quit (0)
   Case vbCancel
     WScript.Quit (1)
 End Select

elfy
常連さん
会議室デビュー日: 2004/09/23
投稿数: 25
投稿日時: 2005-03-17 00:59
ちいにぃ さん、ありがとうございます。
作成して思ったとおりに動いてくれるか確認してみます。
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2005-03-17 01:31
確かめてませんが、こんな風にすれば1行ですみそうです。

cscript choise.vbs || exit /b 1

スキルアップ/キャリアアップ(JOB@IT)