2010-09-30 13 views
0

J'ai le VBScript suivant:C# application console .NET (.exe) par rapport à VBScript (.vbs) pour les tâches planifiées

Dim strFile, strXPath, strNewText, xmlDoc, xmlNodes, xmlNode 

strFile = "C:\folder\cats.xml" 
strXPath = "/list/cat/@LAST_BATH" 
strNewText = Now 

Set xmlDoc = CreateObject("Microsoft.XMLDOM") 

xmlDoc.Async = "False" 
xmlDoc.Load(strFile) 

Set xmlNodes = xmlDoc.selectNodes(strXPath) 

For Each xmlNode in xmlNodes 
    xmlNode.Text = strNewText 
Next 

xmlDoc.Save strFile 

fichier XML:

<?xml version="1.0" ?> 
<list> 
    <cat NAME="Monkey" LAST_BATH="9/30/2010 3:02:02 PM" /> 
</list> 

Le script ci-dessus est seulement 1 Ko . J'ai également une petite application de console C# .NET (.exe) qui fait exactement la même chose, mais il est 11KB, et le App.config est 1KB (fichier de configuration de sorte que le chemin et le nom du champ ne sont pas codés en dur).

Ce que j'ai l'intention de faire est de créer une tâche planifiée pour exécuter le processus ci-dessus à un certain intervalle.

Quel est le meilleur à utiliser, le .vbs ou le .exe? Et pourquoi?

La différence de mémoire affecte-t-elle les performances? Je suppose que le .exe est plus rapide parce qu'il est pré-compilé, mais puisque le .vbs est si petit, je devine que c'est à peu près aussi vite que vous pourriez jamais vouloir de toute façon.

(Je sais que cela est discutable, mais je suis juste curieux Merci pour votre patience..)

Répondre

1

Je suis vraiment fan d'utiliser des langages de script chaque fois que possible pour les petits outils et des applications - cet exemple est un candidat parfait:

  • Son pas trop compliqué
  • en tant que script, vous pouvez facilement modifier et modifier le script sans avoir besoin de recompiler
  • vous pouvez facilement voir ce que t Le script le fait sans avoir à chercher le code source

Bien sûr, les langages de script sont (probablement) toujours plus lents que le code compilé, mais je trouve généralement que ce n'est pas vraiment un problème. Si vous écrivez beaucoup de petits outils comme ceci dans vbs alors vous voudrez peut-être envisager de passer à un langage de script plus performant - en tant que développeur .Net, je recommande vivement Iron Python (qui fonctionne vraiment bien même pour les plus grandes/GUI) utilitaires)

+0

+1, merci Kragen. * Omg Iron Python est génial! * En fait, j'aimerais utiliser un meilleur langage de script, et j'ai l'intention d'apprendre Windows PowerShell bientôt. Cependant, la raison pour laquelle j'utilise actuellement VBScript (ou .NET 2.0 .exes) est que mon client ne possède pas les environnements les plus récents, et c'est même un gros problème pour les amener à mettre à niveau les frameworks .NET. Donc, pour l'instant, je programme pour le plus petit dénominateur commun. – JohnB

+0

Je me demandais, y at-il des IDE/débogueurs pour la programmation VBScript? En ce moment j'écris aveuglément et dois utiliser beaucoup de 'MsgBox' – JohnB

+1

@JonB - Visual studio fonctionne très bien, et a un excellent débogueur VBScript. Le moyen le plus simple que je connaisse est de démarrer le script avec 'cscript/D', et de placer une instruction' Stop' sur la première ligne du fichier (équivalent à 'debugger;' en JavaScript). – Justin

1

Il n'y aurait pas de problèmes de performance, car c'est une petite tâche. Je préférerais VBS pour cette tâche. La source est facile à changer et aucune compilation/liaison n'est nécessaire. Vous pouvez éditer le code directement sur le répertoire que vous utilisez, contrairement au code compilé dans lequel vous devez accéder au répertoire du projet, ouvrez VS et modifiez-le.