L'Application de la Console Arguments pour le Planificateur de Tâches de Paramètres (FERMÉ)
J'ai fait beaucoup de recherche sur ce sujet et tous, j'ai trouvé étaient trompeuses sites à propos de l'information je ne le cherchais pas. Donc j'espère que quelqu'un ici peut me donner une explication solide.
Bref, j'ai un programme, que je veux utiliser dans le Planificateur de Tâches. Mais quel que soit le paramètre je donne dans la boîte pour les mettre en, il arrête pas de dire que L'index se trouve en dehors des limites du tableau.
Je comprends que les paramètres sont liés à la args? Si quelqu'un peut me dire quel est le problème avec mon code?
public static void Main(string[] args)
{
string paramList = string.Join("", args);
string[] parameter = paramList.Split(',');
string ScanPath = parameter[0]; //Which directory to scan
string MailToAddress = parameter[1]; //Which e-mail to send the log to
string ScanHours = parameter[2]; //How many hours to scan
}
J'ai trouvé cela quelque part sur codeproject. J'ai supposé que le premier argument est lié au premier paramètre, etc, etc.
Dans le Planificateur de Tâches j'ai d'abord parcourir à la sortie de l'exécutable:
Bien sûr, le path
et mail
partie est beaucoup plus lors de l'exécution du programme, mais c'est juste pour l'exemple.
Dois-je supprimer les virgules? Et/ou ajouter -
en face de chaque paramètre? Ou est-ce quelque chose de complètement autre chose?
Merci d'avance!
Vous devez vous connecter pour publier un commentaire.
Généralement arguments de ligne de commande sont séparés par un seul espace de caractère, pas une virgule de l'. En outre, si l'un de vos arguments contenir des espaces, vous devez envelopper l'argument entre guillemets doubles:
Je ne sais pas comment le planificateur de tâches de fournitures de ses paramètres, mais vous pouvez bien sûr journal les arguments avant de les utiliser, pour voir exactement ce qui est transmis à votre demande.
args.Length
à l'avance, au lieu de simplement en supposant que l'utilisateur a fourni la bonne quantité d'arguments. J'espère que l'enregistrement va montrer exactement ce qui se passe.[1]
, et quand j'essaie de passer[1]
avec[0]
, l'erreur reste à[1]
. Donc cela signifie que l'erreur commence à la deuxième ligne, qu'il ne peut pas aller plus loin.Mais je pense que vous savez ce déjà, juste pour être sûr:
Vous avez besoin de séparer les paramètres par des blancs. Aussi, si les paramètres contient des espaces (chemin d'accès par exemple), les mettre dans doublequotes.
Pourquoi ne pas vous écrire un simple test-app qui vide le complet paramsarray dans un fichier texte.
Ensuite, vous devez savoir comment interpréter correctement.