Comment passer un argument à un fichier.bat ? - Divers - Programmation
Marsh Posté le 24-06-2003 à 15:32:59
Pas compris ta question ...
Là tu passes bien un argument.
Tu veux savoir comment l'utiliser dans le .bat ?
si oui, le premier s'appelle %1 le 2° %2 etc
%0 étant le nom du .bat
A+
Marsh Posté le 24-06-2003 à 15:51:32
Oui, en effet je passe bien un argument.
Je ne me rappelai plus comment le récupérer (%1..)
Toujours aussi bien ce forum.
Merci
Marsh Posté le 24-06-2003 à 15:59:46
Maintenant, une colle : s'il y a plus de 9 arguments, comment tu fais pour récupérer le 10° et suivants ?
Je te paie un apéro virtuel si tu réponds dans les 10 minutes.
A+
Marsh Posté le 24-06-2003 à 16:15:31
JPA a écrit : Maintenant, une colle : s'il y a plus de 9 arguments, comment tu fais pour récupérer le 10° et suivants ? |
tu fais un .exe !
Marsh Posté le 24-06-2003 à 17:27:32
JPA a écrit : non, non, en batch... |
Ben ... En fait, j'en sais trop rien, mais ca m'intéresse bien ... J'ai un vieux P100 que je ressors un coup de temps en temps !
Marsh Posté le 24-06-2003 à 18:11:15
truc de fourbe: j'appelais certains de mes batchs avec plus de 8 lettres (DOS 5 powah) et je testais %0 pour voir si c'était bien ce que j'attendais, sinon il faisait mine de rien
de cette manière j'avais un argument zéro facile et mes frangins qui passaient parfois sur mon PC n'y voyaient que du feu
Marsh Posté le 24-06-2003 à 18:34:38
ReplyMarsh Posté le 24-06-2003 à 19:09:46
JPA a écrit : Maintenant, une colle : s'il y a plus de 9 arguments, comment tu fais pour récupérer le 10° et suivants ? |
Faut utiliser shift
Marsh Posté le 24-06-2003 à 19:26:37
drasche a écrit : truc de fourbe: j'appelais certains de mes batchs avec plus de 8 lettres (DOS 5 powah) et je testais %0 pour voir si c'était bien ce que j'attendais, sinon il faisait mine de rien |
rien compris
tu les appelais, c-a-d tu leur donnait un nom de >8lettres ou bien tu les invoquais avec le nom+qques lettres?
et sinon tes frangins savaient pas faire cat truc.bat?
Marsh Posté le 24-06-2003 à 19:36:19
the real moins moins a écrit : rien compris |
en gros j'ai un fichier concombr.bat, qui respecte l'ancestral format 8.3. Mais ça me plaît pas, j'ai envie qu'il ne fonctionne que si je tape "concombre" sur la ligne de commande. Bien sûr le "e" ne sera pas considéré par la ligne de commande elle-même qui s'empressera de l'ignorer, mais je peux faire un test sur %0 pour voir s'il vaut "concombr" ou "concombre" et agir en conséquence du genre là si je tapais "concombr", il affichait le message d'erreur command not found (ou un truc du genre, jme rappelle plus )
Marsh Posté le 24-06-2003 à 19:41:29
*Syl* a écrit : Sous DOS ? |
boh, type, ça va hein
Marsh Posté le 24-06-2003 à 19:43:07
drasche a écrit : |
pas mal
mais bon, un bete "type" aurait suffit à déjouer ton stratageme
donc pq pas un fichier betement en invisible?
moi j'avais de tps en tps l'un ou l'autre repertoire en invisible
Marsh Posté le 24-06-2003 à 19:51:47
parce que Norton Commander roxorait un max
Marsh Posté le 24-06-2003 à 19:57:13
the real moins moins a écrit : |
alt+255, ça donnait un dossier avec juste un espace comme nom, et il n'était pas accessible depuis le Gestionnaire de fichiers de Windows 3.1
Marsh Posté le 24-06-2003 à 20:02:06
antp a écrit : |
et qu'est-ce que tu y cachais?
Marsh Posté le 24-06-2003 à 20:18:26
n'empêche qu'on n'a toujours pas la solution pour utiliser plus de 9 paramètres dans le .bat ...
à un moment, je voulais me servir de ca pour faciliter l'utilisation de net send, mais pour le message, ca faisait bcp de paramètres différents ...
Marsh Posté le 24-06-2003 à 20:33:41
theShOcKwAvE a écrit : n'empêche qu'on n'a toujours pas la solution pour utiliser plus de 9 paramètres dans le .bat ... |
avec le shift ça marche pas?
Marsh Posté le 24-06-2003 à 20:43:50
F:\>type test.bat |
F:\>test 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
ça marche
Marsh Posté le 24-06-2003 à 21:04:45
the real moins moins a écrit : ça marche |
Effectivement, je ne connaissais pas ... honte à moi !
Question bonux : est-ce qu'on peut détecter le fait qu'il n'y a plus de paramètres ...
style pour un wrapper pour net send, ce serait pratique ...
Edit :
Ouais ... %* ca marche, donc c'est nikel !
Marsh Posté le 24-06-2003 à 21:22:17
ben ouais t'as l'equivalent du if en batch
Marsh Posté le 24-06-2003 à 22:49:46
the real moins moins a écrit : ben ouais t'as l'equivalent du if en batch |
je ne parlais pas du if, mais de l'instruction / valeur qui permettrait de savoir si on a traité tous les arguments ...
J'ai essayé %$, mais ca ne retourne pas le nb d'arguments comme je m'y attendais .. Ca aurait pu être une solution ...
en tous cas, %* suffit amplement pour la commande que je voulais faire ... Mais bon ... Ca ne m'est plus d'aucune utilité ... c'est plutôt pour de la culture DOS, si on peut appeler ca comme ca !
Marsh Posté le 24-06-2003 à 22:58:25
ben tu boucles en faisant shift jusqu'a ce que %0 n'ai pas de valeur
Marsh Posté le 24-06-2003 à 23:30:20
the real moins moins a écrit : ben tu boucles en faisant shift jusqu'a ce que %0 n'ai pas de valeur |
oui, effectivement ...
Marsh Posté le 24-06-2003 à 15:14:56
Bonjour,
Je voudreais savoir comment passer un argument à un fichier.bat ?
Du style :
c:\>test.bat mon_arg
Merci