2011-08-25 16 views
16

私はCSCRIPT.EXEを使用して(代わりのVBScriptの)Javascriptを実行する方法を学習しようとしているが、私はしようとすると、私はエラーを取得する:CScriptでJavascriptを実行していますか?

cscript temp.js 
Input Error: There is no script engine for file extension ".js". 

I thoughtこれが可能である - 何が間違って任意のアイデア?

答えて

5

それturns out.js拡張子がレジストリ内JSFileと関連していなかったこと。そうすることで問題は解決しました。

-1

あなたがエラーを修正するには、このコマンドを実行することができます:

regsvr32 %systemroot%\system32\vbscript.dll

+0

いいえ、うまくいかなかった... – Mehrdad

22

regsvr32でレジストリを設定しても機能しませんでした。また、私は.jsをプレーンテキストエディタにリンクさせたいので、私はそれを望んでいません。

しかし、仕事になります。cscriptためのコマンドラインオプション//Eがあります:

cscript //E:jscript hello.js 
+2

この関連は、ファイルの関連付けを置き換えたくない場合に最適です。 – mcw0933

23

非常に簡単な修正:assocを使用するには。

c:\>assoc .js=JSFile 

(鉱山は、いくつかの点で、テキストエディタに関連付けられているとなっていました。)

+0

私は.jsをテキストエディタに目的に応じて関連付けましたが、このエラーを他のものと混同するのは非常に簡単です。 – b01

0

すぎて、この問題を持っていた、と私は...

を解決1.- wsh.infを見つけて、インストールファイルを%windir%\inf

におけるWindowsスクリプトホストの2.- wsh.inf上で右クリックして、installを選択します。

1

ASSOCの.js = JSfile FTYPE jsfile = C:\ WINDOWS \ System32に\ Cscript.exeの "%1" %*

5

それは、ファイル名の拡張子 がない場合でもrplantiko's solutionが機能することを言及する価値があります.js。これにより.jsコード を.cmdファイルに入れてバッチとして実行し、 assocのような予備ステップなしで完全に移植可能な単一ファイル ソリューションを形成します。

:あなたは次の内容の test.cmdファイルを作成する場合

例えば、 あなたは、単にそのアイコンの上に別のファイルをドロップする&エクスプローラ、 中またはドラッグによって、それをクリックすることで、それを実行できるようになります

@if (@CodeSection == @Batch) @then 
    @cscript //Nologo //E:jscript "%~f0" "test arg" %* & pause & goto :eof 
@end 
WScript.Echo("hello world"); 
for (var i = 0, n = WScript.Arguments.Length, args = []; i < n; ++i) 
    args.push(WScript.Arguments(i)); 
WScript.Echo("arguments: " + args.join(",")); 

@then ... @endの間の行は、cmd.exeによって解釈されるバッチコマンドです。最後のコマンドはgoto :eofで、残りのファイルをスキップします。 @endの後の行は、cscript.exeによって解釈されます。

+0

非常に良い!:)おそらく99%の人々はcmdスクリプトの基本を知っているだけなので、非常に小さな騒ぎで膨大な量の電力を追加します。間違いなくスニペットコレクションのための1つ、ありがとう。 [1] [OK]を燃やさないでください、それは私の頭の上にあります。 – randomsock

関連する問題