Lancement d'un batch paramétré.

AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004 - 23 oct. 2004 à 16:54
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 23 oct. 2004 à 21:26
Bonjour,

Voila mon problème :

Je souhaiterais lancer en fonction d'un switch, un batch.
Jusque là rien de bien compliqué en utilisant ShellExecute ça fonctionne à merveille.
Mais là où je rame, c'est que ces batch doivent recevoir un jour de la semaine en paramètre.
Je demande donc de stocker le jour saisi dans une variable, mais j'ignore complètement comment utiliser cette variable en paramètre de lancement du batch.

Merci

27 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 oct. 2004 à 17:31
En fait tu veux récupérer les paramètres donnés au batch, c'est ca?
Dans ce cas ceci pourrait t'aider:
How do I pass parameters to a batch file?
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 18:10
Je sais faire ça.
Je veux savoir comment donner le paramètre au batch lorsqu'il est contenu dans une variable.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 oct. 2004 à 18:13
C'est tout simplement le 4eme param de ShellExecute...
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 18:17
Donc c'est censé faire ça ? :

switch (choix)
{
case 1 : ShellExecute(NULL,"open","rvh.bat",jour,NULL,SW_SHOWNORMAL);
break;
case 2 : ShellExecute(NULL,"open","f3.bat",jour,NULL,SW_SHOWNORMAL);
break;
}
}

Si c'est le cas, pour les deux ligne j'ai :
Cannot convert 'int' to 'const char *'
Type mismatch un parameter 'lpParameters' in call to '__stdcall ShelExecuteA(void *, const char *,const char *, const char *,const char *,int)'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 oct. 2004 à 18:20
Ta variable jour doit être un int, je pensais que c'était un char*...
tu n'a qu'a faire
char jour2[4];
sprintf(jour2, "%d", jour);
ShellExecute(NULL,"open","rvh.bat",jour2,NULL,SW_SHOWNORMAL);
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 18:24
Jour2 devient un entier. Il me faut une chaine de caractère.
Jour est déclaré comme ça :

sprintf(jour2, "%d", jour);
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 oct. 2004 à 18:26
J'ai pas compris le probleme, jour2 n'est pas un entier. Qu'est ce que tu veux passer comme paramètre au batch exactement?
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
23 oct. 2004 à 18:32
oui, ou est le probleme ?
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 18:49
Je veux passer lundi mardi mercredi ... qui eux sont stocké dans jour
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
23 oct. 2004 à 18:55
const char *jours[] = { "lundi", "mardi", ... };

index jours
> jours [ jour ]
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 18:56
Quand je met jour en char* :

Lors de l'exécution :

Fault: access violation at 0x406b5b: write of adress 0x0
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 18:57
Je ne saisi pas ta solution

(Désolé je suis un peu débutant)
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 oct. 2004 à 18:57
Et tu crois qu'ils vont tomber du ciel comme ca?
char* jours[] = {"Lundi", ..., "Dimanche"};
ShellExecute(NULL,"open","rvh.bat",jours[jour],NULL,SW_SHOWNORMAL);
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 oct. 2004 à 18:58
Oula je suis un peu à la bourre la...
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
23 oct. 2004 à 19:02
maintenant tout y est

AdrienVdh > si tu debutes, pourquoi tu t'embetes a faire ca en c ?
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 19:08
Bah parceque c'est le seul language que je connaisse un peu
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 19:16
Mais ça ne dois pas être si compliqué.
Il suffit juste que j'arrive à lui faire prendre le jour que je saisi en paramètre.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
23 oct. 2004 à 19:22
ben penses aussi a consolider tes (faibles) bases

sinon la reponse on l'a donnée ?
0
AdrienVdh Messages postés 14 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 23 octobre 2004
23 oct. 2004 à 19:25
J'y pense lol, j'y travail tout doucement.

Bah la réponse est floue. La solution avec sprintf(jour2, "%d", jour); me renvoie 100 pour lundi, 109 pour mardi... donc ça ne me sert pas.

L'autre je voie pas trop.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
23 oct. 2004 à 19:33
ben c'est ca

const char * jours[] = {"Lundi", ..., "Dimanche"};
jour numero_du_jour; ( lundi0, ... dimanche = 6 )

ShellExecute(NULL,"open","rvh.bat",jours[jour],NULL,SW_SHOWNORMAL);
0
Rejoignez-nous