• 締切済み

コマンドプロンプトの×ボタン押下時の処理について

はじめて質問させていただきます。 バッチファイルから「START」コマンドで子画面を表示し、その子画面の右上の「×ボタン」を押して子画面を閉じた際に、親画面も一緒に閉じる方法はありますでしょうか? 以下がバッチファイルから子画面を呼び出す処理です SET Input="@ECHO OFF & SET Input=%Input%ECHO YかNを選択してください& SET Input=%Input%FOR /l %%i IN (0,0,1) DO SET /p input=入力^(Y/N^)& SET Input=%Input%IF /i s!input!==sy (exit /b 1) SET Input=%Input%ELSE IF /i s!input!==sn (exit /b 2)" START /WAIT cmd /v /k %InputCmds% 現状だと「×ボタン」を押した場合、子画面が閉じて親画面には「^Cバッチ ジョブを終了しますか (Y/N)?」と表示されています。 ここで「Y」を選択すれば親画面も閉じるのですが、 行いたい動きとしては「子画面の×ボタンを押した場合に、そのまま親画面も一緒に閉じる」といった処理にしたいのです。 分かりにくい文章で申し訳ございませんが、ご教授いただければ幸いです。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

No1です。 >その結果を親画面に返してそのまま親画面で処理を続けていく・・・といった処理をしたかった為です。 結果はどうやって返すつもりですか? >今回の子画面はYesかNoのポップアップウィンドウのようなものです。 それだけなら、VBScriptでポップアップさせるのがいいです。 なんか、本当にやりたいことからどんどん明後日の方向に進みつつあるように見えます。 本当にやりたいことは?

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

親画面を閉じたいのなら、start /wait でwaitしなければ良いと思うのですが。 なぜwaitしているのでしょうか?

kool2013
質問者

補足

ご返答が遅れてしまい申し訳ございません。 そして説明不足ですみません WAITしているのは親画面から子画面を呼んだ際に一旦親画面の処理を止め、子画面でYかNが選択された場合に子画面を閉じてから、その結果を親画面に返してそのまま親画面で処理を続けていく・・・といった処理をしたかった為です。 今回の子画面はYesかNoのポップアップウィンドウのようなものです。 的はずれな返答でしたらすみません・・・ 引き続きご教授頂ければ幸いです。

関連するQ&A

  • バッチファイル 過去の更新日時の上書きしない

    以下のようなバッチファイルで、ファイルのコピーするバッチがありますが、 更新日時が過去日時の際に、コピーしないように制御したいのですが、 どのように行えばよろしいでしょうか? @ECHO OFF SET _PATH_FROM_1=AAA\AAAAA.xls SET _PATH_TO_1=BBB SET /P _USER_INPUT="よろしいですか (Y/N)?" IF /I NOT "%_USER_INPUT%" == "Y" (EXIT) COPY /-Y "%_PATH_FROM_1%" "%_PATH_TO_1%" EXIT

  • MS-DOSの起動ディスクでループする?

    どうにもいきづまってしまいましたのでお力を貸して下さい。 WindowsXPからMS-DOSの起動ディスクをフロッピーディスクで作成してAUTOEXEC.BATに下のように書いたのですがメニューから入力するところで止まらずうまくいきません。 Windowsのコマンドプロンプト上ではうまくいくのですが、調べてみたらコマンドプロンプトとMS-DOSが別ものということはわかったのですがどのように直していいかわかりません。 すみませんがご教授いただけないでしょうかよろしくお願いします。 環境 OS:Windows XP Pro PC:NEC VersaPro :Main cls @echo off rem メニュー echo キー入力後、エンターで決定して下さい echo [0] 処理 echo [E] 終了 rem 入力値の取得 set /p input= if defined input set input=%input:"=% rem 入力値判断 if /i "%input%" == "0" (goto KAKUNIN) if /i "%input%" == "E" (goto exit) else goto Main goto main :KAKUNIN cls echo 処理をしていいですか? Y/N set /p input= if defined input set input=%input:"=% if /i "%input%" == "Y" (goto SYORI) if /i "%input%" == "N" (goto Main) else goto KAKUNIN :SYORI 処理をする pause :exit

  • #1ボタンと#2ボタンで分岐処理をしたい。

    #1ボタンが押されたらAの処理を、#2ボタンが押されたらBの処理をさせたいので、次のスクリプトを書きましたが、実行すると Notice: Undefined index が出て何も動きません。 1 <HTML><BODY> 2 <input type="submit" name="are" value="#1ボタン" > 3 <input type="submit" name="kore" value="#2ボタン" > 4 <?php 5 $are=isset($_POST["are"])? $_POST["are"] : null; 6 $kore=isset($_POST["kore"])? $_POST["kore"] : null; 7 if($_POST["are"]){ echo ("あれや"."<br />"); 8 } 9 if($_POST["kore"]){ echo ("これや"."<br />"); 10 } 11 ?> 12 </BODY></HTML> どのようにして目的の動作をさせれば良いでしょうか?

    • ベストアンサー
    • PHP
  • コマンドプロンプト画面の閉じるボタン非表示

    Windows端末でバッチファイルを実行後、処理経過が分かるようにコマンドプロンプト画面を表示しているのですが、途中で画面右上の「×」(閉じる)ボタンが押されて処理が強制終了されないようにしたいと考えています。 コマンドプロンプト画面右上の「×」(ボタン)を非表示にする方法はありますでしょうか?

  • コマンドプロンプトサービスの停止と開始について

    OS Windows Server2003 バックアップを取るため SQL Serverサービスをタスクで自動で開始と停止をやりたいんですが、 バッチを組み実行したところ、開始は問題ないのですが 停止するときにバッチがそのまま止まってしまいます。 ログを調べたところ次の文面が表示されていました。 ※「次のサービスは MSSQLSERVER サービスに依存しています。 MSSQLSERVER サービスを停止すると、これらのサービスも停止されます。    SQLSERVERAGENT この操作を続行しますか? (Y/N) [N]: 」 コマンドプロンプトで「y」を実行すると停止します。 このようにバッチを組んでいます。 開始バッチ set log=c:\log\SQL-service-start.log net start mssqlserver >> %log% net start SQLServerAgent >> %log% 停止バッチ set log=c:\log\SQL-service-stop.log net stop mssqlserver >> %log% 申し訳ございませんが、ご教授の方お願いします。

  • コマンドプロンプトについて

    バッチファイルで自動でエクセル起動して何秒後に終了、次のファイル起動・・・・ としたいのですがわかりません。 宜しくお願い致します。 @echo off "C:\Program Files (x86)\Microsoft Office\OFFICE11\excel.exe" "d:\2.xls" timer 10 SET PID= for /F "usebackqtokens=2" %%i in (`tasklist /nh /fi "Imagename eq excel.exe"`) do SET PID=%%i IF defined PID ( taskkill /PID %PID% ) "C:\Program Files (x86)\Microsoft Office\OFFICE11\excel.exe" "d:\3.xls" これをXPとWIN7で動かしたい。

  • コマンドプロンプトのスクリプトの意味がわかりません

    こんにちは。コマンドプロンプトの意味がわかりません。お教え頂けませんでしょうか? http://bgworks.info/blog/2007/01/echo_type.html @echo off setlocal set o=a.log if "%~1"=="" exit /b cd %1 || exit /b if exist %o% del %o% for /r %%a in (*.txt *.htm*) do >> "%~1\%o%" (echo %%a && type "%%a") endlocal 調べてみて、if exist %o% del %o%までは理解ができました。 次の行の、forループで再帰的に何かをやるところまではわかりましたが、そこからがよくわかりません・・・ ご解説お願い致します!

  • バッチ処理について

    コマンドプロンプトでのバッチ処理についてお伺いします。 【環境】 Windows XP SP3 【要件】 特定ディレクトリにあるファイルにおいて、○○Byte以下のファイルを削除する。 上記の要件に則ってバッチファイルを作成する事となりました。全くの無知で検索した所、 下記のサイトに辿り着き、お知恵を拝借させて頂きました。 http://www.fpcu.jp/dosvcmd/bbs/log/delerase/4-0062.html -------------------- @ECHO OFF FOR /F %%F IN ('dir /B') DO ( CALL :CheckFile %%F ) EXIT /B :CheckFile SET FileAttrib=%~a1 IF NOT %FileAttrib:~0,1%==d ( IF %~z1 == 0 ( ECHO "%1" はファイルサイズが 0 なので削除します。 REM DEL %1 ) ) EXIT /B -------------------- いくつかの文献を読み、大方の内容と要件に沿った処理を行えるまでには至ったのですが、 どうしても6-7行目を理解する事が出来ません(IF処理では無く、FileAttribの行り、SET処理についてです)。 どなかたご教示頂けないでしょうか。

  • exitコマンドの後の変数について(シェル)

    シェルをはじめたばかりの初心者です。 以下のようなシェルがあります。exit後のexit_cancelという変数は何に使われるのでしょうか? exitしてしまえばシェルは終了してしまうので exit_cancelという変数は関係ない気もするのですが・・・ ちなみにexit_cancelという変数はシェル内には どこにも定義していません。 どなたか教えて頂けないでしょうか? 何卒よろしくお願い致します。 case "${opt_exec}" in "z") ;;  *)     print -n "本当によろしいですか?[y/n] =>"     read REPLY   if [[ ${REPLY} != "y" ]] then echo "処理を中止します。" exit ${exit_cancel}        fi esac

  • コマンドプロンプトのバッチファイル実行までの速度

    コマンドプロンプトのバッチファイルを作成したのですが このバッチファイルの実行するまでの処理速度を、コマンドプロンプト上に表示させたいのですが、どのようなコマンドを組めばよいのでしょうか? ちなみにバッチファイルの中身は、 @echo off start http://www.yahoo.co.jp です。よろしくおねがいします。

専門家に質問してみよう