Vale la pena mencionar que rplantiko's solution funciona incluso si la extensión del nombre de archivo no es .js. Esto permite colocar el código .js en un archivo .cmd y ejecutarse como un lote, formando una solución de un solo archivo que es totalmente portátil sin pasos preliminares (como assoc
).
Por ejemplo, si crea un archivo test.cmd
con el siguiente contenido, usted será capaz de ejecutarlo simplemente haciendo clic en él en el Explorador, o arrastrando & soltar otro archivo sobre su icono:
@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(","));
Las líneas entre @then
... @end
son comandos por lotes interpretados por cmd.exe. El último comando es goto :eof
para omitir el resto del archivo. Las líneas después de @end
son interpretadas por cscript.exe.
No, no funcionó ... – Mehrdad