|
278) startコマンドから開いたDOS窓について れしぴ 2002/05/13(月) 14:41 |
|
初めまして。 れしぴといいます。 DOS窓を自動的に閉じたいのですが、過去ログの内容とちょっと状況が 違うので改めて質問してみました。 windows95のログオンスクリプト(以下a.bat)中にstartで別のbat(以下b.bat)ファイルを呼んでいます。 その呼んだbatの窓が自動的に閉じなくて困っています。 a.batは自動で閉じます。 b.batをcallで呼んだ場合には自動で閉じます。 callで呼ぶとb.batの内容が正常に動作しないためstartを使っています。 b.batの内容は chkdsk c:>\\servername\sharename\%computer%.txt の一文だけです。 b.batに何か記述することによって、またはb.batの呼び出し時のオプション等で 窓を閉じてa.batに戻ることって出来ないでしょうか? exitで閉じると思ったのですが閉じませんでした。 この場合×で閉じるしかなくなります。 れしぴ |
|
280) Re:startコマンドから開いたDOS窓について SYSOP 2002/05/13(月) 15:58 |
|
れしぴさん こんにちは。 >windows95のログオンスクリプト(以下a.bat)中にstartで別のbat(以下b.bat)ファイルを呼んでいます。 >その呼んだbatの窓が自動的に閉じなくて困っています。 Windows95の場合だと、b.batが初めて起動した時点で、同じフォルダ内にb.pifというファイル(GUIでの見た目はMS-DOSプロンプトのアイコンの形のショートカット)ができているはずです。 このショートカットの「プロパティ」の「プログラム」のページを開くと、いちばん下のほうに、「プログラム終了時にウィンドウを閉じる」のチェックボックスがあります。これをオンにすれば、b.batの終了時、ウィンドウは自動的に閉じるはずです。試してみてください。 >窓を閉じてa.batに戻ることって出来ないでしょうか? b.batの窓を閉じること自体は上に書いた方法で可能なはずですが、startは別のプロセス(いってみれば別人格)で他のプログラムを動かす指定で、なおかつDOSレベルでは直接の通信手段がありませんから、a.batに制御を戻すことは基本的にできません。 ただ、どうしてもという場合には次のように、特定の(ダミーの)ファイルの有無を目印として、b.batが終了するまでa.batを無限ループさせておく、というような手法は考えられると思います。 :b.batの末尾 echo end of process>c:\keyfile.txt :a.bat側の処理 start b.bat :loop if not exist c:\keyfile.txt goto loop del c:\keyfile.txt ...... YanaKen |
|
282) Re2:startコマンドから開いたDOS窓について れしぴ 2002/05/13(月) 16:53 |
|
早速のコメントありがとうございます。 > プログラム終了時にウィンドウを閉じる」のチェックボックスがあります。これをオンにすれば、b.batの終了時、ウィンドウは自動的に閉じるはずです。 この方法はわかっているのですが、この方法を採用できない理由がありまして 「バッチを実行するパソコンの場所に行かないと設定できない」というデメリットがありまして そのパソコンの前にいくならこのbatも走らせなくてよいのです(苦笑)。 startでは難しいと言うことでしたら別スレッド立てますので一歩手前の問題のご相談にのっていただければと思います>ALL。 |
|
285) Re3:startコマンドから開いたDOS窓について SYSOP 2002/05/13(月) 18:14 |
|
れしぴ さん >この方法はわかっているのですが、この方法を採用できない理由がありまして >「バッチを実行するパソコンの場所に行かないと設定できない」というデメリットがありまして >そのパソコンの前にいくならこのbatも走らせなくてよいのです(苦笑)。 そういった特殊条件があるなら先におっしゃってくださいね(苦笑)。 実行する環境が遠隔マシンだという場合は、終了時にすぐ閉じるよう設定済みの.pifも、バッチファイルといっしょに先方にコピーしておけばよいのではないでしょうか。 YanaKen |
|