問題タブ [wsh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2775 参照

sql-server - SQL Server エージェント:「スリープ」する方法は?

SQL Server エージェント 2005 のスケジュールされたタスクのスクリプト作成ステップで、別のサーバーで実行されている Web スクリプトをトリガーする必要があります。私はこれをやっています:

(1)で「スリープ」(例: WScript.sleep(..))したいのですが、この環境ではWScriptが使えません。しばらく「眠る」別の方法はありますか?

0 投票する
2 に答える
1985 参照

vbscript - DB2 を使用した WSF および ADO、recordset.MoveNext は vbscript でサポートされていないエラー

.wsf ファイルと vbscript を使用して、db2 から返されたレコードセットをループしようとしています。

vbscript libfile(lib.vbs) は次のとおりです。

ループしようとしているレコードセットを取得するために、trial.wsf ファイルを使用しています。

私の最初の考えは、カーソルの種類が間違っている可能性があるということ
でしたが、cursosr の種類を動的に設定することさえできず、サポートされていない vbscript エラーが発生しました。

プロバイダーの問題かもしれませんが、それを確認することはできません。

このようなことをしたいのですが、レコードセットでループできません..

wsfとスクリプトに精通していない、基本的な/ばかげた間違いがここにあると確信しています..

0 投票する
3 に答える
6289 参照

c# - Vista 64 ビットで C# または VBS の 32 ビット COM オブジェクトを使用すると、エラー 80004005 が発生する

私は完全に理解していないことをしようとしているので、ここでいくつかの心を読む必要があります.

外部アクセス用の COM API を提供する 32 ビット アプリケーション (CQG と呼ばれる電子取引アプリケーション) があります。Excel、.NET (C++、VB、C#)、およびシェル VBScript からこの API にアクセスするサンプル プログラムとスクリプトがあります。これらの .NET アプリケーションは、ソース コードとコンパイル済みの実行可能ファイル (32 ビット、Windows XP でコンパイル) として持っています。

現在、Windows Vista Home 64 ビットを使用しているため、頭が回転します。Excel の例は問題なく動作します (Excel 2003)。コンパイルされた .NET サンプル実行可能ファイルも同様に機能します。

しかし、Visual Studio C# 式に変換してコンパイルした .NET C# サンプルを実行しようとしたり、VBScript スクリプトを実行しようとすると、オブジェクトを作成しようとするとエラー 80004005 が発生します。最初は .NET アプリケーションでも 80040154 が返されましたが、64 ビットではなく 32 ビット コードを生成する方法を見つけたので、C# アプリケーションと VBScript アプリケーションのエラーは同じになりました。それが今のところ私が得たすべての進歩です。

はい、VBS の SysWOW64 フォルダーから 32 ビット バージョンの cscript.exe/WScript を実行しようとしましたが、結果は同じです (80004005)。

この問題を解決するには?私はそれが事実上不可能であると信じる準備がほとんどできていますが、Excel VBA が動作し、Windows XP でコンパイルされた .NET 実行可能ファイルが正常に動作するという事実は、私を怒らせるだけです. これを打ち負かす方法があるはずです (おそらく Windows Vista の開発者だけが知っている秘密です)。どんな助けにも感謝します!

PS: コード サンプルはここではあまり意味がないと思いますが、失敗する VBScript の行は次のとおりです。

そして、これはC#です:

更新:もちろん、 UACがオフになっていることを忘れていました。そして、私は管理者権限を持つアカウントから作業しています。

また、Process Monitor を使用してどのレジストリ キーが読み取られるかを監視しようとしましたが、このオブジェクトの GUID についてはすべて問題ないように見えます。他のいくつかの GUID を認識できなかったので、それらが重要かどうかはわかりません。

この COM オブジェクトが Internet Explorer を使用し、間違ったもの (Internet Explorer 6 エンジンの代わりに Internet Explorer 7 など) を取得する可能性はありますか?

0 投票する
1 に答える
789 参照

windows - Windows XP: 標準の「新しいフォルダー」アクションを WSH スクリプトに置き換えます

問題: Windows デスクトップの標準の「新しいフォルダ」アクションと同様の方法で新しいディレクトリを作成するカスタム WSH スクリプトがあります。ただし、このスクリプトはいくつかの追加処理を行います。定義済みの一連の子ディレクトリを作成できるようにするなど (オプション)。ディレクトリが仕事に関連している場合や特定の顧客向けである場合は、メモやリマインダーを追加できるようにします。

Windows XPで「新しいフォルダー」アクションを呼び出すたびにこのスクリプトが実行されるようにしたいと思います。

質問:カスタム WSH スクリプトが代わりに実行されるように、WindowsXP での新しいディレクトリの標準作成を置き換えるために、どのようなオプションが利用可能ですか (ある場合)?

おまけの質問: Windows XP でこのようなことを行うのが面倒かどうかに関係なく、Windows Vista ではそれが簡単になりますか?

0 投票する
3 に答える
38021 参照

batch-file - ファイルを検索できる .bat または .wsh スクリプト

次のことができる .bat OR .wsh スクリプトの例を探しています。

  • ユーザー指定の拡張子 (.dll、.exe など) を持つディレクトリ内のファイル名を再帰的に読み取る
  • ユーザーが指定したディレクトリで上記のファイル名を検索します
  • 次のような調査結果の txt または xls レポートを生成します。x.txt は "C:\temp"、"C:\blah" で見つかりました

ティア。

編集:

おっと、明確にする必要があります。ここには 2 つのディレクトリと 2 つの検索があります。

検索 1:

  • ユーザーが指定したディレクトリ「Dir 1」ですべての *.dll を検索します。

検索 2:

  • 検索 1 で生成されたファイル名について、ユーザーが指定した別のディレクトリ "Dir 2" を検索します。この検索も再帰的である必要があります。

したがって、検索 1 がディレクトリ 1 で foo.dll、foo2.dll、および foo3.dll を見つけた場合、検索 2 はディレクトリ 2 で foo.dll、foo2.dll、および foo3.dll を検索し、次のレポート (単純なリスト) を提供する必要があります。見つかった各ファイル。

0 投票する
2 に答える
809 参照

svn - WScript.Shell で svn ダンプが失敗する

Windowsでcscriptの上で実行しようとしていますが、何もしていないようです。ダンプ ファイルは作成されません。

私がやっている間違いはありますか?

0 投票する
3 に答える
2650 参照

logging - VBScript に相当する log4j はありますか?

一連の .wsf ファイルと .vbs ファイルをデバッグ ステートメントでインストルメント化する必要があります。出発して自分でロールバックする前に、log4j のようなものは WSF/VBScript 用に存在しますか?

0 投票する
1 に答える
7477 参照

windows - WshShell.RegRead を使用して、名前がファイル パスであるレジストリ値を読み取る方法

Windows Scripting Host によって実行される JavaScript を作成しています。特定の DLL の共有ファイル数をレジストリから読み取れるようにする必要があります。レジストリ キーと値は次のようになります。

これを行うためにWshShell.RegReadメソッドを使用しようとしていますが、うまくいかないようです。問題は、このメソッドが、取得する値の連結されたキーパスと値名である単一のパラメーターのみを取ることだと思います。この場合の値の名前はそれ自体がパスであるため、メソッドはそれがキーの一部であると見なします。このメソッドに値の名前を認識させる方法はありますか?

問題を示すコードは次のとおりです。

私が見ているエラーは次のとおりです。

0 投票する
1 に答える
531 参照

profiling - Windows Scripting Host Code用のプロファイラーはありますか?

WSH(VBScript、JavaScript、WSF)で実行されるコードをプロファイリングできるプロファイラーはありますか?トレースステートメントを使用して手動でインストルメント化する以外に、WSHで実行されているコードをプロファイリングするための良い方法は何ですか?

0 投票する
6 に答える
103065 参照

encoding - VBScript の Base64 エンコード文字列

いくつかの VBScript および JavaScript ファイルを含む Windows スクリプト ファイル (WSF) である Web サービス ロード ドライバーがあります。私の Web サービスでは、受信メッセージが base64 でエンコードされている必要があります。私は現在、これを行う VBScript 関数を持っていますが、非常に非効率的です (主に VBScript のひどい文字列連結が原因で、メモリを大量に消費します)。

[さておき; はい、ジェフの最新のブログ投稿を見ました。連結は、サイズが 1,000 から 10,000 バイトのメッセージ全体のループで発生しています。]

カスタム文字列連結ルーチンをいくつか使用してみました。1 つは配列を使用し、もう 1 つは ADODB.Stream を使用します。これらは少し役立ちますが、自分の VBS 関数を使用するのではなく、メッセージをエンコードする別の方法があればもっと役立つと思います。

できればネイティブの Windows メソッドを使用して、メッセージをエンコードする他の方法はありますか?