
VBScriptを使用したプログラムを作成しています。
1.プログラム起動
2.コマンドプロンプトウィンドウを開く(開いている間、内部処理実行)
3.内部処理で発生したメッセージをコマンドプロンプトウィンドウに表示する。
(「○○ファイル処理中です。」等)
4.ユーザー側でコマンド処理を実行もできる(Copy とか md 等)
5.コマンドプロンプトウィンドウが閉じられたら処理を終了する。
というプログラムを作成したいのです。
内部処理の方はもう出来上がっているのですが、後から仕様が追加になりました。
内部処理は数時間かかるので、今どのような状況かが確認したいとのことなのです。
msgboxでは「OK」をクリックするまで止まってしまうことになるので使用できません。
また、メッセージは10回分くらいは表示したままにしたいです。
無理ならば4は除いても構いません。
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run ("cmd.exe /c",,True)
では、コマンドプロンプトウィンドウが開いている間、処理が止まってしまいますし、
最後のTrueをFalseに変える または Run をExec に変えるとウィンドウが一瞬で閉じてしまいます。
どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
1〜5それぞれでよくわからないことがあります。
1. 起動方法は?
2.コマンドプロンプトは 1. で開く、ということですか?
3. VBScriptとコマンドプロンプトの関係は?
コマンドプロンプトでCSCRIPTでVBSCriptを実行すれば、wscript.echo とかでコマンドプロンプトに出力になりますが。
4.VBScript実行中にコマンド入力したい、ということですか?
それなら、VBS実行とは別のコマンドプロンプトを実行すればいいのでは?
> wshShell.Run ("cmd.exe /c",,True)
cmd に /Cオプション (コマンドを実行したら終了する)を付けて実行しています。
その「コマンド」が無いから、「コマンド」はすぐに終了します。よって、コマンドプロンプトも終了します。
なぜ、/Cを付けているのですか?
「cmd.exe 引数」で検索しましょう。
No.2
- 回答日時:
これ、ただどこまで進捗しているかをコマンドプロンプト上で確認できるようにしたいということが目的ですよね?
であるならば、内部処理を実行元となるvbsで実行するのではなく、内部処理を断続的にわけたvbsを用意し、コマンドプロンプトからそのvbsを実行するようにすればいいのではないでしょうか。
・実行元は各vbsを実行し、タイミングごとに状況をechoするbat
・各vbsで段階的にバッチを処理
長時間を要するバッチ処理として表示されているものなのに、そこに任意のコマンドを実行できていいのでしょうか?
そんなことをユーザーが任意にコマンドプロンプトを起動してがちゃがちゃやるならまだしも、『バッチ処理』として許可してしまったら、バッチ処理で処理した途中経過のものを壊せるのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(OS) Windowsで大量の画像サイズを半自動で変更する方法 6 2023/02/17 08:45
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Windows Me・NT・2000 コマンドプロンプトのdisk partについて 2 2023/03/05 15:49
- Excel(エクセル) エクセルVBA マクロ処理中のポップアップメッセージについて 1 2023/08/04 21:34
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- フリーソフト .264という動画ファイル 2 2022/07/12 11:30
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
このQ&Aを見た人はこんなQ&Aも見ています
-
コマンドプロンプト実行後に画面を閉じない方法
Visual Basic(VBA)
-
VBSの処理中一旦処理を止めて再開させたい。
Visual Basic(VBA)
-
VBScriptで外部プログラム実行中に「処理中」のダイアログボックスを表示したい
その他(プログラミング・Web制作)
-
-
4
VBAのコマンドプロンプトでpauseを使う方法
Visual Basic(VBA)
-
5
VBS実行時にコマンドプロンプトが表示される
その他(プログラミング・Web制作)
-
6
runas実行した時にきかれるパスワードを手入力以外で読み込ませたい
その他(プログラミング・Web制作)
-
7
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
8
VBAのExecメソッドで画面を非表示にして実行する方法
Visual Basic(VBA)
-
9
vbsでファイルやフォルダのコピー中にプログレスバーを表示させるにはど
Visual Basic(VBA)
-
10
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
11
excel vbaから実行するexe実行の黒い画面の非表示
Visual Basic(VBA)
-
12
バッチ終了時にDOS窓を閉じるコマンド
その他(プログラミング・Web制作)
-
13
VBスクリプトで「お待ち下さい」メッセージ表示は可能?
Visual Basic(VBA)
-
14
WSH(VBScript)でアプリケーションを停止したい
その他(プログラミング・Web制作)
-
15
“.vbs”のファイルが実行できない
Windows Me・NT・2000
-
16
ステートメントの末尾が不正です
Windows Vista・XP
-
17
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
18
VBスクリプト---アプリの終了について
その他(プログラミング・Web制作)
-
19
vbsでからプログラムを、オプションを指定して起動したい。
その他(OS)
-
20
VBSが起動しない
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
batからexeを実行し戻り値を受...
-
これってパソコンの最適化が完...
-
PDFファイルを開き、印刷し、閉...
-
コマンドプロントでバッチファ...
-
VBScriptでコマンドプロンプト...
-
エクセル フォルダの画像を画...
-
Access の VBA 実行中に他の操...
-
Windows System32 Security Hea...
-
exeファイルを実行するとコマン...
-
VBscriptが起動しない?
-
Accessからバッチ処理を実施し...
-
VBA 既に開いているBookに継続...
-
バッチファイルが不正終了して...
-
+Lhaca バッチファイル 自動...
-
VBSについて
-
ブラウザーのリンクをクリック...
-
バッチファイルの内容を表示さ...
-
Accessの最適化について DBengi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
これってパソコンの最適化が完...
-
「読み取りと実行」と「読み取...
-
バッチファイルの内容を表示さ...
-
exeファイルを実行するとコマン...
-
VBscriptが起動しない?
-
複数のbatファイルを自動実行し...
-
エクセル フォルダの画像を画...
-
ネットワーク名が見つかりません
-
PDFファイルを開き、印刷し、閉...
-
Excel(エクセル) VBA プロシー...
-
Windows System32 Security Hea...
-
VBScriptでコマンドプロンプト...
-
Access の VBA 実行中に他の操...
-
【VB.NET】exeを実行すると「発...
-
バッチファイルが不正終了して...
-
16進数の変換処理
-
Excel VBA ステップインが途中...
-
pythonスクリプトを管理者権限...
おすすめ情報
3/4 9:30時点での補足です。
kmee様
紛らわしい質問で申し訳ありません。
大雑把にいうと、2~5の機能を持ったプログラム(仮にaaa.vbsとします)を作成したいのです。
>1. 起動方法は?
1.で起動するのは、そのaaa.vbsです。
現時点では、aaa.vbsは、PCの起動時にBATファイルより CScript "aaa.vas(フルパス表記)" で起動します。
ですが、これですと4.の機能を実現できないので、困っています。
>2.コマンドプロンプトは 1. で開く、ということですか?
その通りです。
>3. VBScriptとコマンドプロンプトの関係は?
> コマンドプロンプトでCSCRIPTでVBSCriptを実行すれば、wscript.echo とかでコマンドプロンプトに出力になりますが。
これもおっしゃる通りです。
続きます。
続きです。
>4.VBScript実行中にコマンド入力したい、ということですか?
> それなら、VBS実行とは別のコマンドプロンプトを実行すればいいのでは?
事情があり、ユーザーに他のウィンドウを開いたり、他のウィンドウへ移動する操作をさせたくありません。
>なぜ、/Cを付けているのですか?
機能を間違えて覚えていました。ご指摘いただかなかったら、ずっと間違えていたと思います。
ありがとうございました。
「5.コマンドプロンプトウィンドウが閉じられたら処理を終了する。」について追記します。
現行の、CScript "aaa.vas(フルパス表記)" の起動では、ウィンドウを閉じた時点でaaa.vbsも強制終了してしまいます。
コマンドプロンプトウィンドウが閉じられたら、aaa.vbs内の終了処理を行ってから終了するようにしたいです。
引き続きよろしくお願いいたします。
3/10 9:30時点での補足です。
依頼元と相談の結果、aaa.vbsから出力されるメッセージ用のウィンドウと、
ユーザーが使用するコマンドプロンプトウィンドウを別にすることになり、
現行の状態でOKとなりました。
ありがとうございました。