出産前後の痔にはご注意!

vbsで”do loop ”の処理中、中断ボタンで処理を抜けたいのですがどうすればいいでしょうか?

A 回答 (1件)

Exit Do


です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBSの処理中一旦処理を止めて再開させたい。

VBSの処理中一旦処理を止めて再開させたい。

VBS内で順番に実行し処理しているソースで
その途中でダイアログを出して一時的に止めてOK出したら次の処理に移れる方法ってどうすれば出来ますか?

例えば copy1 copy2 copy3 終了

それを copy1 copy2 ダイアログのokを押すまで待機 copy3 終了

見たい感じです。

Aベストアンサー

わたしの場合は良くWScript.Echoを使いますね。

copy1
copy2
WScript.Echo("OKをクリックして継続します。")
copy3

↑のように書けばcopy2を終えたところでOKボタンのみの簡易ダイアログを表示します。

QVB上で実行中の無限ループの止め方

今まで、CUIベースのBASICでのプログラムの経験はあるのですが
Visual系のBASICは初心者です。
原因はわかっているのでプログラムの修正はできるのですが
VB上でコンパイルして実行したときに無限ループに陥ってしまって
どうにもプログラムをとめられなくなります。
そんなことがないように、実行前に全てのプロジェクトを保存して
いますので、そんなに実害はないのですが、どうすればとめられるのでしょう・・
今現在は、タスクマネージャーから強制終了させています。

Aベストアンサー

無限ループの一番内側に
DoEvents
を入れておくと、ウィンドウ切替え->デバッガ終了操作が出来ますよ

危なそうなとこにも入れておくと、何かと安心です。

QVBSで"をエスケープする文字は?

VBSで"をエスケープする文字はなんでしょうか?

Aベストアンサー

エスケープといった考えが VBSではなかったように思います

"をあらわすには "で括る必要が生じます
たとえば "abc" といった内容なら """abc""" といったリテラルになります
一番外側の "のペアが 文字列としての"になります

"ab"cが欲しいなら """ab""c"
a"bc"が欲しいなら "a""bc"""
a"b"cがほしいなら "a""b""c"
といった具合になります

QVBScriptで外部プログラム実行中に「処理中」のダイアログボックスを表示したい

IPPプリンタを自動的にインストールするスクリプトを作成しています。プリンタドライバのインストールに時間がかかるので、その間に「処理中です。しばらくお待ちください」というダイアログボックスを表示したいのですがどのように実装したら宜しいでしょうか。

具体的には11行目の「WshShell.Run install, 1, True」が実行されてから終了するまでダイアログを表示したいと思っています。

以下作成したスクリプトです
------------------------------------
Option Explicit

Dim WshShell
Dim install
Dim open_window

install = "rundll32 printui.dll,PrintUIEntry /b ""プリンタ"" /x /n ""プリンタ"" /if /f ""RCBED12K.INF"" /u /r ""https://192.168.1.1"""
open_window = "control printers"

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Popup "プリンタドライバをインストールします。この処理には10秒以上かかる場合があります。しばらくお待ち下さい",10,"インストール"
WshShell.Run install, 1, True

WshShell.Popup "プリンタドライバのインストールが完了しました。この後自動的に開くウィンドウの中に「プリンタ」のアイコンが表示されていればインストール完了です。",10,"インストール"
WshShell.Run open_window

WScript.Quit
------------------------------------

IPPプリンタを自動的にインストールするスクリプトを作成しています。プリンタドライバのインストールに時間がかかるので、その間に「処理中です。しばらくお待ちください」というダイアログボックスを表示したいのですがどのように実装したら宜しいでしょうか。

具体的には11行目の「WshShell.Run install, 1, True」が実行されてから終了するまでダイアログを表示したいと思っています。

以下作成したスクリプトです
------------------------------------
Option Explicit

Dim WshShell
Dim instal...続きを読む

Aベストアンサー

過去に同様の質問が出てますね。
http://okwave.jp/qa/q2176278.html

VBScriptでマルチスレッド・マルチプロセスはできないので、この回答のように、
1.外部アプリを起動してそこに文章を出す
2.時間のかかる処理をする
3.外部アプリを終了させる
ということしか出来ないでしょう。

QVBSで応答不要のメッセージボックスを表示したい

Kotori_Dと申します。

今回質問したいのは、VBScriptを使い、ある処理を行っている最中にメッセージボックスを表示させ、
操作をしないように呼びかけ、なおかつメッセージ表示中も処理が実行され続けるようにしたいのですが、その方法で困っています。

MsgBox("処理中です。操作しないでください。")
この場合、メッセージが出て、OKを押すまで保存は実行されません。

CreateObject("WScript.Shell").Popup "処理中です。操作しないでください。", 0, " 警告"
こちらでも、OKを押すまで処理は中断されます。
また、表示時間を指定すると、途中で消えてしまうので、役不足です。

私としては、メッセージは出たままで、処理を継続してほしいのですが、
何かよい方法はないでしょうか?

よろしくお願いします。

Aベストアンサー

http://blog.s21g.com/articles/1202

非同期でコマンドを発行すればいいと思います。
コマンド内容は、メッセージを表示するだけの実行ファイルを
用意。

QVBSで変数の宣言はできないのですか?

VBSで、

Dim a As String
a = InputBox("MsgBoxに表示する値を入れてください。", , "test")
MsgBox a

と文章を作って、test.vbsで保存しました。
するとエラーになります。

Dim a As Stringの部分を消すと、問題なく作動します。

もしくは、

Dim a
a = InputBox("MsgBoxに表示する値を入れてください。", , "test")
MsgBox a

でも正常に動きます。
VBSで変数の宣言はできないのでしょうか?

Aベストアンサー

こっちの方がより面白いか。
自動型変換の便利さと危うさですね。

dim a
msgbox typename(a)
a=1
msgbox "a= " & a & " typename= " & typename(a)

a=a*100000
msgbox "a= " & a & " typename= " & typename(a)

a=a*0.1
msgbox "a= " & a & " typename= " & typename(a)

a= a & "b"
msgbox "a= " & a & " typename= " & typename(a)

a=a*1

QVBScriptでフォルダ内の全ファイル名取得

こんにちは

VBScriptでツールを作成しています。
フォルダA内の全ファイルをリネームして
別フォルダB内に同じファイル名があればリネームして
フォルダA内のファイルをコピーしたいのですが
一度にフォルダ内の全ファイル名を取得する方法が分かりません。

なにかいい方法は無いでしょうか?よろしくお願いします。

Aベストアンサー

VBスクリプトサンプルです。

以下のプログラムをVBSファイルとして保存してください。
(※※※※全角スペースは半角スペース2個と置換してください※※※※)

そのファイルにエクスプローラなどから、フォルダをドラッグしてみてください。
プログラム先頭で切った出力先に、ログとして残ります。



Option Explicit
'-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Const LIST_FILE = "C:\FileList.txt" '←ログ出力先
'-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*


'-----------------------------------------------

Dim objArgs
Dim fsoObj
Dim objText

'オブジェクト生成
Set objArgs = WScript.Arguments
Set fsoObj = CreateObject("Scripting.FileSystemObject")

'ログファイルがあったら抹消
If fsoObj.FileExists(LIST_FILE) Then
  Call fsoObj.DeleteFile(LIST_FILE)
End If

'ログファイル準備
Set objText = fsoObj.OpenTextFile(LIST_FILE, 8, True, 0)

'メイン実行
Call MainProc(objArgs)

'ログファイルクローズ
objText.Close


'オブジェクト開放
Set objText = Nothing
Set fsoObj = Nothing
Set objArgs = Nothing
'-----------------------------------------------



'-----------------------------------------------
'メイン実行部
'-----------------------------------------------
Sub MainProc(arg)
  Dim objParam

  'パラメータループ
  For Each ObjParam in arg
    'フォルダであるかをチェック
    If fsoObj.FolderExists(objParam) Then
      'リスト作成メイン実行
      Call CreateFileList(objParam)
    End If
  Next
End Sub


'-----------------------------------------------
'リスト作成メイン
'-----------------------------------------------
Sub CreateFileList(inFolderName)
  Dim fsoFolder
  Dim fsoSubFolder
  Dim fsoFile
  
  'フォルダオブジェクト取得
  Set fsoFolder = fsoObj.GetFolder(inFolderName)
  
  'フォルダ内/ファイルループ
  For Each fsoFile In fsoFolder.Files
    'ログに出力
    objText.WriteLine fsoFile.Path
  Next
  
  'フォルダ内/サブフォルダループ(サブフォルダが不要なら、このループは不要)
  For Each fsoSubFolder In fsoFolder.SubFolders
    'サブフォルダで再帰
    Call CreateFileList(fsoSubFolder)
  Next
End Sub

VBスクリプトサンプルです。

以下のプログラムをVBSファイルとして保存してください。
(※※※※全角スペースは半角スペース2個と置換してください※※※※)

そのファイルにエクスプローラなどから、フォルダをドラッグしてみてください。
プログラム先頭で切った出力先に、ログとして残ります。



Option Explicit
'-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Const LIST_FILE = "C:\FileList.txt" '←ログ出力先
'-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*


'-----------------...続きを読む

QDOSコマンドで cmd /c rd /s /q c: の意味は?

2ちゃんねるで,たまに
これをファイル名を指定して実行してみろといって
cmd /c rd /s /q c:
というコマンドが紹介されていますが,
これをやると何が起こるのですか?

Aベストアンサー

絶対に実行してはダメですね。
Cドライブのデータを全て削除するコマンドです。

CMD /C ○○ ・・・ ○○のコマンドを実行する

RD /S /Q △△ ・・・ ディレクトリを削除する
          /Sでその場所配下の全てのファイルを削除
          /Qで削除のメッセージを表示しない

QMS-DOSコマンドプロンプトを途中で止める

SQLPlusで、MS-DOSコマンドプロンプトを使用する場合、SELECT分の抽出があいまいすぎて大量のデータが結果として表示される場合、途中でキャンセルはできないのでしょうか?現状、出力が終えるまでぼけーって待ってます。
今回の質問のようにMS-DOSコマンドプロンプトのコマンドが他にもありましたら教えてください。

Aベストアンサー

プログラムの作りにもよりますが、
「Ctrl+C」で停止
「Ctrl+S」で一時停止
出来ないでしょうか?

QASP VBScriptでスクリプト実行を終了

ASP VBscript においてPHPでのdie()やexit()に相当する関数はありますか?

Aベストアンサー

PHPのexit()のように、終了コードを返す概念はないのですが、
処理を終了させるという意味では、Response.End が近いものかなと
思います。

ご参考になれば幸いです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング