Windowsにて、OS起動時にスタートアップにバッチファイルを登録し、以下のようなことを事をしたいのですが、バッチファイルの記述方法が知識不足でよくわかりません。
以下のバッチファイルは、どのように記述すればよいのでしょうか?
(1)”アプリケーションXXXを起動しますか?[Y/N]"とコメントをコマンドプロンプトで表示する。
(2)コマンド入力時
キー入力にて"Y"を入力した場合 :アプリケーションXXXを起動
キー入力にて"N"を入力した場合 :バッチを終了しコマンドプロンプトに戻る。
キー入力が一定時間(20秒程度)なかった場合:20秒経過後アプリケーションXXXを起動
わかる方、おしえてくださいませ。
No.1ベストアンサー
- 回答日時:
お望みの機能は cmd.exeのバッチ機能だけでは実現しません。
方法は2つあると思います。
1. バッチファイルを拡張するプログラムを導入する。
http://www.vector.co.jp/soft/win95/util/se349380 …
などはお望みの動作の手助けをすると思います。
vector.co.jp などにあるバッチの拡張するツールを検索すると
よいかもしれません。
2.バッチにこだわらず他のプログラムを使用する。
wshなどはデフォルトでほとんどのWindowsで使用できます。
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh0 …
http://www.atmarkit.co.jp/fwin2k/operation/wsh07 …
コマンドプロンプトにこだわらなければより柔軟な対話的スクリプトが
書けます。
以下は hoge.vbs などとして実行してみてください。
少し変更すれば、望みの機能が実現できるかと思います。
Set objShell = WScript.CreateObject("WScript.Shell")
Directory = "C:\" '実行ファイルを起動するディレクトリ
RunCommand = "C:\windows\system32\cmd.exe /k echo aaa" '実行ファイル名
WaitTime1 = 20 'はじめのダイアログの待ち時間
WaitTime2 = 20 '次のダイアログの待ち時間
Ret = objShell.Popup( _
RunCommand & " の実行を" & vbcrlf & _
"中止する場合は「キャンセル」を押してください。", _
WaitTime1, "処理を実行しますか?", vbOKCancel+vbQuestion)
Select Case Ret
Case vbOK, -1
objShell.CurrentDirectory = Directory
objShell.Run RunCommand
Select Case Ret
Case vbOK
objShell.Popup "実行しました。", WaitTime2, vbInformation
Case -1
objShell.Popup "自動的に実行しました。", WaitTime2, vbInformation
End Select
Case vbCancel
objShell.Popup "キャンセルしました。", WaitTime2, vbInformation
End Select
大変お世話になりました。
サンプルで頂きましたVBScriptのソースをベースに作成し、思った以上のものが出来ました。大変ありがとうございます。
UNIXのshellでやっていたような事がWindowsのコマンドプロンプトで動作するBATでできればと思っていましたが、拡張しないと出来ないことを始めて知りました。
頂いた2つの方法共に非常に的確に内容が把握できるものを教えていただき、参考のホームページのリンクもすごく参考になり勉強になりました。
こちらで紹介頂いたwshのホームページを参考に勉強していきたいと思います。
すばらしいご回答をありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・周辺機器) チャレンジタッチ3 改造 アプリインストールできない 1 2022/07/01 14:43
- Visual Basic(VBA) VBA 登録ボタンを省略してエンターキーで作業 4 2022/07/09 22:29
- iOS これは日本語入力の大発明ですか? 7 2022/12/21 07:17
- Windows 10 BitLocker 回復キーの入力 1 2022/10/09 15:23
- ネットワーク 通信量を見たい 3 2023/03/01 07:47
- Mac OS mac os xの設定の(起動ディスク)にブート用dvdが表示されません 1 2022/05/28 13:29
- デスクトップパソコン windows7を使っているパソコンでの質問です。先日動作が遅く再起動かけると「windowsを起動 9 2022/06/16 21:31
- Windows Me・NT・2000 widows xpのエラーで利用ができなくなりました 3 2022/12/21 13:43
- Mac OS iMac27(2010)のbootcamp 下の Windows で ディスプレー外部入力を 受ける 4 2023/07/25 18:57
- ノートパソコン ノートパソコンのキーボードがおかしくなってしまいました。 backspaceを入力すると[だったりa 4 2022/04/07 11:55
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Thunderbird 振り分けされなく...
-
エクセルで定期的(30分おき)...
-
JP1で月末以外で毎週月曜日のジ...
-
ADのDC移行の手順を教えてください
-
2010でShiftキーを使っても自動...
-
xcopyバッチを管理者として実行...
-
MODE関数を文字でできる関数は...
-
Windowsのディスクのクリーン...
-
vbsファイルによるネットワーク...
-
タスクススケジューラを停止さ...
-
Teratermで、条件分岐させたい
-
x64とIA64の違い
-
SSDのTrimって毎日実行していい...
-
bat 処理の中止
-
ログオン・ログオフスクリプト...
-
Setup.exeの管理者権限が必要な...
-
Remote Access Connection Mana...
-
OnTimeの取り消しについて
-
ジョブとタスク(ソフトウェア)...
-
WSUSのインストールについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Thunderbird 振り分けされなく...
-
xcopyバッチを管理者として実行...
-
エクセルで定期的(30分おき)...
-
MODE関数を文字でできる関数は...
-
JP1で月末以外で毎週月曜日のジ...
-
2010でShiftキーを使っても自動...
-
SSDのTrimって毎日実行していい...
-
タスクススケジューラを停止さ...
-
x64とIA64の違い
-
vbsファイルによるネットワーク...
-
VBAのタイマー
-
Teratermで、条件分岐させたい
-
ADのDC移行の手順を教えてください
-
WindowsServer2003の、SMB1.0を...
-
グループポリシーでログオンス...
-
bashで15分前と現在のエポック...
-
bat 処理の中止
-
GIGABYTE ユーティリティについて
-
ポリシーによる自動ログオフ
-
OnTimeの取り消しについて
おすすめ情報