J'ai écrit le code JavaScipt suivant qui convertit un nombre binaire en un 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 pouvoir exécuter ce code à partir de la ligne de commande. Le nom du fichier est converter.js et la commande Invite window est exécutée dans le même répertoire que le fichier. J'essaie d'exécuter ce code en utilisant 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 d'avance.
1) Installez Node.js si vous ne l’avez pas encore fait.
2) Modifiez votre fichier converter.js
comme suit:
function bin_dec(num) {
return parseInt(num, 2);
}
console.log(bin_dec(process.argv[2]));
3) Ouvrez une nouvelle invite de commande dans le dossier contenant votre script et exécutez-la.
$ node converter.js 01001100
Dans nodejs, en supposant que vous l'avez déjà installé depuis que vous essayez d'exécuter JavaScript à partir de cmd, vous devrez vous reporter au tableau process.argv
pour obtenir les arguments passés dans la ligne de commande.
Donc, votre code devra ressembler à ceci:
(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;
})(process.argv[2])
Notez que process.argv[2]
est transmis à la fonction. Cela rendra le premier argument disponible en tant que variable num
dans votre fonction.
Vous pouvez également ajouter un console.log
quelque part si vous souhaitez que les messages soient affichés à l'écran, car l'instruction de retour n'imprimera pas les messages.
En supposant que vous utilisez Windows, vous pouvez l'appeler comme suit:
(function bin_dec() {
var x = WScript.arguments(0);
var result = 0;
for (var i = 0; i < x.length; i++) {
result += eval(x[x.length - i] * 2^i);
}
return result;
})()
Où tous les paramètres passés dans la fonction sont stockés dans WScript.arguments
.
Cependant, cela ne produira pas la valeur return
dans l'invite de commande. Vous souhaiterez peut-être le tester avec ce fichier .js
:
(function ShowAlert() {
var x = WScript.arguments(0);
WScript.ECho(x);
})()
Voir ces liens pour plus de détails:
Vous devez savoir que peu de fonctions de base, telles que les instructions console
ou return
, ne fonctionneront pas dans la CLI.
Si vous utilisez Windows, utilisez 'WScript.echo'
, qui est similaire à console.log
. Lorsque vous exécutez le fichier, veillez à le faire comme ci-dessous.
Cscript.exe yourpath input_params
par exemple Cscript.exe converter.js 01001100
Donc, votre code devrait être
(function bin_dec() {
var x = WScript.arguments(0);
var result = 0;
for (var i = 0; i < x.length; i++) {
result += eval(x[x.length - i] * 2^i);
}
WScript.echo(result);
})();
et pour l'exécuter devrait être
Cscript.exe converter.js 01001100
espérons que cela vous aide! Pour plus d'informations sur les méthodes CLI, visitez le lien suivant
https://msdn.Microsoft.com/en-us/library/2795740w(v=vs.84).aspx