1

背景: 私の Rails 環境では、Windows Scripting Hostを使用して Javascript ファイルを実行するExecJSを使用するCoffeeScriptを使用しています。

残念ながら、CoffeeScript ファイルがコンパイルされるときに、大きな遅延 (> 30 秒) が発生します。

Process Explorer と Process Monitor を使用して、コマンド ラインが原因の 1 つであることを確認しました。cscript.exe二重スラッシュ付きのパラメーターが必要です。

cscript //E:jscript //Nologo //U C:/path_to_coffeescript_compiler.js

何らかの理由cmd.exeで ( cscript.exe! ではなく) 二重スラッシュを二重バックスラッシュとして扱い、各パラメーターのネットワーク名を解決しようとしますが、明らかに失敗しますが、多少の遅延はありません。

Process Monitor ログの抜粋を次に示します。

cmd.exe     CreateFile     \\E:jscript\\             OBJECT PATH INVALID
cmd.exe     CreateFile     \\E:jscript \Nologo\\     BAD NETWORK PATH
cmd.exe     CreateFile     \\E:jscript \Nologo \U\   BAD NETWORK PATH
cmd.exe     CreateFile     \\Nologo\\                OBJECT PATH INVALID
cmd.exe     CreateFile     \\Nologo \U\              BAD NETWORK PATH

... 等々。

これを防ぐにはどうすればよいですか?

4

2 に答える 2

3

さらにハッキングを行った後、ようやく問題が見つかりました。原因は、ルックアップを実行する cmd.exe プロセスに DLL を挿入した Comodo Internet Security でした。

オプションDo heuristic command-line analysis for specific applicationsのヘルプ テキスト:

このオプションを選択すると、Visual Basic スクリプトや Java アプリケーションなどのコードを実行できるプログラムのヒューリスティック分析を実行するように Comodo Internet Security に指示します。このオプションを有効にすることによって影響を受けるプログラムの例は、wscript.exe、cmd.exe、java.exe、および javaw.exe です。

すべての提供された回避策に感謝します。これらのどれもうまくいかなかったという事実は、原因を見つけることに私を導きました:)

于 2012-04-30T13:58:35.553 に答える
1

どのプロセスに問題があるのか​​ わかりませんが、そのプロセスから非表示にすることができ//ます。

アイデア1) CSCRIPTコマンドをバッチファイルに入れてから、ExecJSにバッチファイルを呼び出させます。

アイデア 2)// FOR 変数を使用しての出現を遅らせる

for %s in (/) do cscript %s%sE:jscript %s%sNologo %s%sU C:/path_to_coffeescript_compiler.js

注 - これはあまり説明しませんが、ほとんどの Windows コンテキストは の/代わりにを受け入れ\ます。たとえば、DIR "C:/"は と同等DIR "C:\"です。

于 2012-04-30T11:51:07.060 に答える