• 締切済み

至急!VBScriptでの質問です。

VBScriptでの質問です・・。 VBScript の中でいくつかのエラーコードを、 戻り値としてerr_001、err_002といった 値に入れて、それをバッチファイルに渡すようにしたいのです。 どなたか教えていただけると幸いです。 よろしくお願いします。

みんなの回答

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.1

VBScriptの戻り値は整数ひとつのみ。 VBScriptからバッチファイルを呼ぶのであれば、err_001、err_002を引数としてバッチファイルを起動すればよいかも。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【VBScript】※渡したい変数のみ抜粋

    【VBScript】※渡したい変数のみ抜粋 WScrip quit(1) 【バッチスクリプト】 for %%i ("パラメータファイル") do ( cscript a.vbs %%i if not %errorlevel%==0 goto err ) 上記VBSが異常終了した際に返す、戻り値1を そのままバッチスクリプトのerrorlevelに返したい のですが、errorlevel==0となってしまいます。 for文を使わず、vbsを実行していた際には、 旨く引き渡せていたのですが、構文の修正が 必要なのでしょうか? どなたかご教示下さい。 宜しくお願いします。

  • VBScriptのエラー処理について

    SQLコマンドファイルを読み込み、ODBC接続によりSQL Server(2000)に接続してクエリを発行し、結果をログファイルに出力するVBScriptのプログラムを作成しています。 SQL実行時のエラーに対応する為、vbscriptにてエラーオブジェクトのプロパティ(Err.Number、Err.Description)を使用し、エラー番号と内容を取得しているのですが、SQL Serverから発行しているエラー番号が取得できません。エラー内容は正常に取得できるのですが、なぜか正常なエラー番号が取得できない状態です。例えば、SQL Serverの構文エラーのエラー番号は170ですが、Err.Numberで取得すると、-2147217865となってしまいます。 原因のわかる方がいらっしゃいましたら、是非ご教示いただきたく。 お手数をおかけ致しますが、宜しくお願い致します。

  • VBScriptでレコードがない場合エラーになる

    VBScriptを使ってHTAを作っています。 ちょっと疑問なのですが、以下のようなコードでレコードがないと 「カレントレコードがありません」というエラーになってしまいます。 txtSQL = "SELECT * FROM test" Set rs = db.OpenRecordSet(txtSQL) ' dbはDAOのデータベースオブジェクト プロシージャで On Error Resume Nextすればエラーになりませんが、 そうなるとありえる全エラーをErrオブジェクトを使ってcatchしないと いけなくなり面倒です。 On Error Resume Nextなしで、ありえるエラーの中で特定のものを (今回は「カレントレコードがない」エラーです)エラーでなくす ことはできないのでしょうか? または プロシージャの中で On Error Resume Nextを使って、 プロシージャの途中でまたエラーで停止するような命令はない のでしょうか? 教えていただけると幸いです。

  • VBScriptの変数宣言

    ASPでvbscriptを使って処理をしているページの修正を行っていたのですが、その中で不思議な状態が発生しています。 <% Option Explicit On Error Resume Next %> ===== 省略 ===== <% filename = Trim(bobj.Form(bin,"filename")) Dim filename ===== 省略 ===== 普通、上記のような記述ではfilenameの代入のところでエラーが発生すると思うのですが、代入処理の直後にerr.numberを判定しても、エラーが発生していないんです。 includeしてあるファイルの内部も検索しましたが、filenameの変数宣言は見つかりませんでした。 VBScriptって、どこで変数宣言を行っても有効になるのでしょうか? 正常に動いているので、今のところ問題は無いのですが、何か気持ち悪くて。。。 似たような現象が起こった事のある方や、これが正しい動きだというご指摘をお願いいたします。

  • バッチファイル(.bat)へWSH(.wsf)のエラーコードの返し方について

    はじめまして、kiwi88と申します。 バッチファイル(.bat)からwshスクリプト(.wsf)を呼び出すプログラムを作成しました。 そこで、wshスクリプトで実行されたエラーコードを呼び出しもとのバッチファイル(.bat)に返すことはできますでしょうか。 以下はバッチファイル(.bat)からwshスクリプト(.wsf)を呼び出す箇所のソースです。 ◆バッチファイル(test.bat)◆ ---------------------------------------- ~※処理内容省略~ cscript test.wsf //nologo //Job:wshscript > batch.log IF %ERRORLEVEL% NEQ 0 GOTO ERR exit :ERR set ret=%ERRORLEVEL% echo ****** [%:ERRORLEVEL=%ret%] ****** > err.txt exit %ret% ---------------------------------------- 以下はwshスクリプト(.wsf)のエラーコードを返す箇所のソースです。 ◆wshスクリプト(test.wsf)◆ ---------------------------------------- <job id = "wshscript"> <script language = "VBScript"> <![CDATA[ Option Explicit Function Main() ~※処理内容省略~ err = Err.Number Main = err End Function ]]> </script> </job> ---------------------------------------- 長くなってしまい、申し訳ありませんが、 ご教授願えますでしょうか。 宜しくお願いいたします。

  • ネットワークドライブ上のVBScript

    ネットワークドライブ上のVBScriptsをタスクスケジューラーで実行すると失敗します ソース:TaskScheduler イベントID:103 パスが見つからないと言うようなエラーのようです。 単純に、”OK”とファイルに書き込むだけのものでもNGでした。 ためしに、バッチファイルを実行しても同じようになりました。 そのVBScriptやバッチファイルをローカルに持ってきてタスクスケジューラーで 実行した場合には問題なく実行されます。 Googoleで検索すると似たような現象を見かけるのですが、解決策はみつかりませんでした。 こちらは制限なのでしょうか。 解決策をご存じの方、アドバイスをお願いします。

  • EXCELVBAでのFunctionプロシージャの戻り値について

    こんにちは。EXCELVBAの本を見てわからないことがあったので、教えてください。 まず、ソースコードは↓です Function P_OpenDatabase() As Integer On Error GoTo Err_Proc   Cn.ConnectionString=P_CnString()   Cn.Open Err_Proc:   If (Err.Number <> 0) Then     Call MsgBox(Err.Description)     Call MsgBox("データベースに接続できません")   End If   P_OpenDatabase = Err.Number…★ End Function で、わからないところは★の部分です 本の解説は↓です。 「プロシージャの戻り値を設定します。Errオブジェクトの「Number」プロパティにはエラーの番号が設定されているので、そのまま戻り値とします。処理が正常に行われたときには、Errオブジェクトの「Number」プロパティは「0(ゼロ)」になるので、戻り値も「0(ゼロ)」になります。」 僕が疑問に思っているのは処理が正常にされたとき(エラーがなかったとき)は、Err_Procの中の処理はされないので、戻り値には0が入らないのでは?と思ってしまうのですが。。 どうなんですかね?わかる方は教えてください。よろしくお願いします。

  • VBScriptで、Date.parseを使いたい

    VBScriptでコードを作成しています。 ある時、日付を自動判定する方法で、JavaScriptのDate.parseが便利だと知りました。 (文章の中に、JanuaryとかFebとかの表現を含んでいますので。。。) VBScriptでコードで、Date.parseの様な判定をするには、どうすれば良いのでしょうか? お教えください。

  • VBScriptのエラーの見つけ方及びうまい開発方法

    VBScriptで色々と試しています。純粋にJavaScriptみたいなスクリプトをかいてブラウザで表示させています。 しかし、エラーがあった場合、空白のブラウザが表示されるだけで、エラーとかが書いてないので、エラー探しに非常に苦労します。 そこで、VBScriptの構文チェックなどをしてくれるものを探しています。もしくは、その方法を教えてほしいです。普通のコンパイラみたいにエラーがわかりたいです。 また、VBScriptを書く際にはExcelVBAのVBAのエディタを使用すると良いとかいてありましたが、あれって、単体で起動できるものなのでしょうか?できるとしてもVBScript(HTMLファイル)の新規作成方法や、VBAエディタの.exeファイルの場所などがわかりません。 とにかく、うまくVBScriptを開発できる方法をご存知のかた、回答お願いします。本当にこまっています。よろしくおねがいします。

  • VBScriptでのDBのエラー取得

    VBScriptでADO(ADODB)接続により、SQLServer(2012)に接続して クエリを発行し、結果をファイルに出力するVBScriptを作成して います。 SQL実行時のエラーに対応する為、VBScriptにてエラーオブジェクトのプロパティ (Err.Number、Err.Description)を使用し、エラー番号と内容を取得しているの ですが、SQL Serverから発行しているエラー番号、エラー内容を取得したいので すが、取得できません。 どのようにすれば、データベース固有のエラーを取得ができますか。 是非ご教示いただきたく、 お手数をおかけ致しますが、宜しくお願い致します。 ------------------------------------------------- Option Explicit Dim objADO Dim objRS Dim Sql if WScript.Arguments.Count <> 1 then WScript.echo("usage: script.vbs arg1") WScript.Quit(-1) end if arg1 = WScript.Arguments(0) Set objADO = CreateObject("ADODB.Connection") objADO.Open "Provider=SQLOLEDB;" & _ "Data Source=hoge;" & _ "Initial Catalog=hoge;" & _ "Integrated Security=SSPI;" sql = "" sql = "select ~ where column ='"&arg1&"'" set objRS = objADO.Execute(sql) If Err.Number <> 0 Then objADO.Close Set objADO = Nothing WScript.Quit(-1) End If sql = "" sql = "update ~ ~ where column ='"&arg1&"'" objADO.Execute(sql) If Err.Number <> 0 Then 更新の破棄とエラー内容の表示 Else 更新を反映 End If objADO.Close Set objADO = Nothing