私はCSCRIPT.EXEを使用して(代わりのVBScriptの)Javascriptを実行する方法を学習しようとしているが、私はしようとすると、私はエラーを取得する:CScriptでJavascriptを実行していますか?
cscript temp.js
Input Error: There is no script engine for file extension ".js".
I thoughtこれが可能である - 何が間違って任意のアイデア?
私はCSCRIPT.EXEを使用して(代わりのVBScriptの)Javascriptを実行する方法を学習しようとしているが、私はしようとすると、私はエラーを取得する:CScriptでJavascriptを実行していますか?
cscript temp.js
Input Error: There is no script engine for file extension ".js".
I thoughtこれが可能である - 何が間違って任意のアイデア?
それturns out.js
拡張子がレジストリ内JSFile
と関連していなかったこと。そうすることで問題は解決しました。
あなたがエラーを修正するには、このコマンドを実行することができます:
regsvr32 %systemroot%\system32\vbscript.dll
regsvr32でレジストリを設定しても機能しませんでした。また、私は.jsをプレーンテキストエディタにリンクさせたいので、私はそれを望んでいません。
しかし、仕事になります。cscriptためのコマンドラインオプション//E
があります:
cscript //E:jscript hello.js
この関連は、ファイルの関連付けを置き換えたくない場合に最適です。 – mcw0933
すぎて、この問題を持っていた、と私は...
を解決1.- wsh.inf
を見つけて、インストールファイルを%windir%\inf
におけるWindowsスクリプトホストの2.- wsh.inf
上で右クリックして、install
を選択します。
ASSOCの.js = JSfile FTYPE jsfile = C:\ WINDOWS \ System32に\ Cscript.exeの "%1" %*
それは、ファイル名の拡張子 がない場合でも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によって解釈されます。
非常に良い!:)おそらく99%の人々はcmdスクリプトの基本を知っているだけなので、非常に小さな騒ぎで膨大な量の電力を追加します。間違いなくスニペットコレクションのための1つ、ありがとう。 [1] [OK]を燃やさないでください、それは私の頭の上にあります。 – randomsock
いいえ、うまくいかなかった... – Mehrdad