CScript.exeを使用して(VBScriptではなく)Javascriptを実行する方法を学習しようとしていますが、試行するとエラーが発生します。
cscript temp.js
Input Error: There is no script engine for file extension ".js".
私 思考 これは可能です-何が悪いのか考えていますか?
それ 判明 その.js
拡張機能がレジストリのJSFile
に関連付けられていませんでした。そうすることで問題が修正されました。
Pirate32でレジストリを設定してもうまくいきませんでした。また、.jsをプレーンテキストエディタにリンクさせたいので、必要ありません。
しかし、仕事をするcscript用のコマンドラインオプション//E
があります。
cscript //E:jscript hello.js
rplantikoのソリューション は、ファイル名の拡張子が.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によって解釈されます。
assoc .js = JSfile ftype jsfile = C:\ Windows\System32\Cscript.exe "%1"%*
この問題もありました、そして私は解決しました...
1.- wsh.inf
にあるWindowsScriptingHostのインストールファイルである%windir%\inf
を見つけます。
2.- wsh.inf
を右クリックして、install
を選択します。