2010-04-18 5 views
2

Lorsque j'exécute un fichier script javascript dans l'environnement de ligne de commande Windows, il y a un texte libre qui suit mon code. Comment puis-je empêcher l'interpréteur javascript de s'y retrouver? Par exemple:stop javascript execution

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
delete fso; 
exit(); // some kind of WORKING exit command 
Hungry lazy frog ate a big brown fox. 
+0

grenouille faim, hein? –

+0

Cela ne devrait pas fonctionner du tout o0 – elias

+0

L'a corrigé. Ça ne marche toujours pas :( – alemjerus

Répondre

2

Il n'y a rien que vous pouvez faire pour arrêter l'interprète avant qu'il le compilateur voit une ligne particulière, car l'ensemble du fichier source Javascript est d'abord compilé en bytecode et il est le bytecode qui est interprété pas votre code source. Ce que vous pourriez faire (bien que ce serait encore désordonné) serait de mettre du texte libre dans un commentaire à la fin du fichier. Ensuite, vous pouvez ouvrir le fichier source et le lire à partir du reste du code. Il ne peut toujours pas être un texte complètement libre mais comme il devrait être un commentaire valide

/* 
whatever text you want provided it doesn't contain * followed immediately by/
*/ 

Beaucoup mieux est tout simplement d'admettre la défaite et de stocker toutes les données dont vous avez besoin dans un fichier séparé.

1

Même si vous avez quitté, vous aurez toujours un problème car le bloc de script entier doit être analysé avant que la première instruction soit exécutée. Avec n'importe quel contenu fictif suivant une instruction de sortie, le script échouerait à analyser du tout, même si ce code ne serait jamais atteint.

Si le texte libre était une seule ligne, vous pourriez vous en sortir //. Ne fonctionne pas pour les commentaires sur plusieurs lignes, car vous auriez besoin d'une fermeture */. Idem pour les commentaires conditionnels nécessitant /*@end @*/.

2

Si vous entourez que avec des guillemets, il sera interprété/compilé mais n'a aucun effet, par exemple

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
delete fso; 
exit(); // some kind of WORKING exit command 
"Hungry lazy frog ate a big brown fox.";