Windows script - run silent, mais attendre la fin / droit de retour de code

Voici ma situation:

  • J'ai un fichier BAT qui prend beaucoup de temps (1 minute à 70 minutes)
  • Je le programmer avec le planificateur de tâches Windows pour exécuter toutes les 10 minutes
  • Si l'horaire de nouveau alors qu'il est encore en cours d'exécution, il ne se passe rien (c'est bon)

Mon problème est que j'ai besoin de mon BAT pour exécuter silencieusement, et il ne le fait pas. Donc, je veux le lancer avec un script Windows comme suit:

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\Batch Files\syncfiles.bat" & Chr(34), 0
Set WshShell = Nothing

Malheureusement, lorsque je programme ce script, il fait le travail, mais renvoie instantanément, rendant le planificateur de tâches Windows pense que la tâche est terminée alors qu'en réalité, la chauve-souris est juste en cours d'exécution par lui-même quelque part.

À cause de cela, Windows replanifier le travail à nouveau 10 minutes plus tard, et de faire de multiples exécuter.

Ce dont j'ai besoin:

Est-il un moyen de dire à Windows fichier de script à attendre que la cible de l' .Commande à exécuter pour terminer avant de passer/sortie? Fondamentalement, je veux agir comme j'ai lancé un autre thread, puis a appelé rejoindre sur lui, donc il fait la même chose de la chauve-souris aurait, mais sans afficher la fenêtre de la console.

D'Autres Solutions

Me dire de toute autre manière d'obtenir cette chauve-souris pour exécuter en mode silencieux (commandes powershell, peu importe) et je vais l'accepter comme une solution. Il suffit de ne pas me dire d'écrire un plein sur le C++/C# appliation autour d'elle, c'est exagéré 🙂


En Cours D'Exécution: Windows Server 2008 R2