Travail du planificateur de tâches Windows avec paramètre et redirection STDOUT

J’ai un programme de ligne de commande qui n’attend aucun paramètre ou paramètre. Si aucun paramètre n’est fourni, il demande le paramètre avec un code simple tel que:

Ssortingng theParameter = Ssortingng.Empty; if (args.Length == 1) theParameter = args[0]; else { Console.Write("Please provide theParameter: "); theParameter = Console.ReadLine(); } Console.WriteLine("Some Output"); 

De manière interactive, cela fonctionne comme prévu:

 > myprogram Please provide theParameter: {a value provided} Some Output 

ou

 > myprogram SomeValue Some Output 

ou

 > myprogram SomeValue > results.log {Some Output in the results.log file) 

Tout fonctionne comme prévu.

De même, lorsque j’utilise le Planificateur de tâches Windows 7 avec myprogram SomeValue il démarre, s’exécute et se termine comme prévu.

Cependant, lorsque j’utilise myprogram SomeValue > results.log pour redirect STDOUT vers un fichier qu’il démarre, exécute et ne termine jamais. Si j’exécute manuellement le travail (en cliquant avec le bouton droit de la souris et en l’exécutant depuis le Planificateur de tâches), une fenêtre de console s’affiche avec le Please provide the Parameter .

Ma question est la suivante: pourquoi le travail du planificateur de tâches Windows court-circuite-t-il mon paramètre qui est transmis au programme si je redirige STDOUT vers un fichier?

La redirection de sortie peut ou non fonctionner avec le Planificateur de tâches Windows . La solution consiste à exécuter la commande souhaitée (y compris la redirection de sortie) dans un fichier de commandes et à appeler le fichier de commandes à partir du planificateur de tâches.

 script.bat ---------- myprogram SomeValue > results.log