L'exécution de JavaScript à partir de l'invite de commande windows
J'ai écrit ce code JavaScipt qui convertit un nombre binaire en nombre décimal:
(function bin_dec(num) {
var x = num;
var result = 0;
for (var i = 0; i < x.length; i++) {
result += eval(x[x.length - i] * 2^i);
}
return result;
})()
Je veux être en mesure d'exécuter ce code à partir de la ligne de commande. Le nom de fichier est converter.js et je suis en cours d'exécution, la fenêtre d'invite de commande dans le même répertoire que le fichier. Je suis en train d'exécuter ce code à l'aide de 01001100
comme argument de la fonction. Voici mes tentatives:
$ converter.js 01001100
et
$ converter.js -01001100
et
$ converter.js bin_dec(01001100)
Mais malheureusement, aucune de ces œuvres. Quelqu'un peut-il s'il vous plaît signaler mon erreur? Merci à l'avance.
- vous avez une IIFE ...
num
argument sera toujoursundefined
en raison de la façon dont vous avez écrit la IIFE ... que de côté ... l'exécution de javascript sur la ligne de commande ... comment vous proposez-vous de ce travail? ne vous obtenez des erreurs lors de l'-vous faire? Je devine que vous êtes sous linux, droit - Mais.. avez-vous un outil qui analyse et exécute JS à partir de la ligne de commande? Comme NodeJS ou similaires? En plus de cela, vous avez une IIFE, donc pas de déclaration de fonction est présente (c'est à dire
bin_dec
n'est pas accessible de l'extérieur). De Plus, vous n'avez pas besoineval
.
Vous devez vous connecter pour publier un commentaire.
1) Installer Node.js si vous ne l'avez pas encore fait.
2) Changer votre
converter.js
fichier comme ceci:3) Ouvrez une invite de nouveau dans le dossier où votre script et l'exécuter
En nodejs, en supposant que vous avez déjà installé car vous essayez d'exécuter du javascript à partir de cmd, vous devrez vous référer à la
process.argv
tableau afin d'obtenir les arguments passés en ligne de commande.De sorte que votre code devra ressembler à ceci:
Avis
process.argv[2]
qui est passé à la fonction. Qui fera le premier argument disponibles comme lenum
variable à l'intérieur de votre fonction.Vous pouvez également ajouter un
console.log
quelque part, si vous souhaitez avoir des messages affichés sur l'écran, puisque l'instruction de retour ne seront pas imprimés des messages.En supposant que vous êtes en cours d'exécution sur Windows, Vous pouvez l'appeler comme ceci:
Où tous les paramètres passés à la fonction sont stockés dans
WScript.arguments
.Cependant, ce ne sera pas sortie de l'
return
de la valeur à l'invite de commande, de sorte que vous pouvez le tester avec ce.js
fichier:Voir ces liens pour plus de détails:
MSDN - Arguments de la Propriété
SS64 - WScript Arguments
SS64 - VBScript arguments de ligne de Commande
Vous devez savoir que, quelques fonctions de base comme
console
oureturn
états ne fonctionnent pas dans les CLI.Si vous utilisez windows, puis utilisez
'WScript.echo'
qui est similaire àconsole.log
et pendant l'exécution de ce fichier, assurez-vous de le faire de cette façon commeCscript.exe yourpath input_params
par exempleCscript.exe converter.js 01001100
De sorte que votre code doit être
et à exécuter doit être
espère que cela vous aide! Pour plus d'informations sur les CLI méthodes de visiter le lien suivant
https://msdn.microsoft.com/en-us/library/2795740w(v=vs. 84).aspx