Détecter une chaine [BATCH] - Shell/Batch - Programmation
Marsh Posté le 01-02-2006 à 10:36:42
Si ta question était si on pouvait utiliser les * pour emplacer un ou des caractères, la réponse est non.
Marsh Posté le 01-02-2006 à 11:15:49
wackevat a écrit : Si ta question était si on pouvait utiliser les * pour emplacer un ou des caractères, la réponse est non. |
Oui, c'etait un peu ma question mais comment faire alors pour détecter la présence de cette chaine?
Marsh Posté le 01-02-2006 à 11:53:50
Ca serait pas plutot avec un FOR non?
Mais comment faire?
Marsh Posté le 01-02-2006 à 14:17:10
Oui, avec for, tu fais une boucle qui vérifie si une sous-chaîne répond au critère.
Pour extraire une sous-chaîne de y caractères à partir de la position x (premier caractère = position 0):
%VAR:~x,y%
mais c'est un peu laborieux si la chaîne de départ est assez longue.
C'est quoi le problème à l'origine (objectif du batch) en fait ?
Marsh Posté le 01-02-2006 à 16:27:06
Merci Nglechau,
ok, je peux essayer ca dans un FOR en incrémentant le x
C'est vrai, j'y connais rien en batch, mais bon j'vais essayer ca.
Sinon pour info, c'est pour associer des noms d'imprimantes reseau à l'ouverture de session avec la commande start
J'ai mes salles : C104, C108, C112 ...
et mes imprimantes : Lexmark C104 -1 , Lexmark C104 -2 , Epson C108 ...
et le nom des stations C104A01, C104A02 ...
L'utilisateur imprime dans la salle ou il se trouve.
Marsh Posté le 01-02-2006 à 16:30:38
... et tu veux détecter les chaînes "d'identification" de salles comme C104, C108, etc. n'est-ce pas ?
Marsh Posté le 01-02-2006 à 16:46:38
wackevat a écrit : ... et tu veux détecter les chaînes "d'identification" de salles comme C104, C108, etc. n'est-ce pas ? |
Oui, en effet.
Si l'utilisateur se trouve en C104, la station aura un computername de la forme C104XXX, et donc il faut connecter les imprimantes qui se trouvent dans cette salle et dont le nom contient C104 en l'occurence.
Marsh Posté le 01-02-2006 à 17:00:35
OKi. Donc SALLE=%STATION:~0,4% et il faut "filtrer" %SALLE% dans la liste des imprimantes. findstr ne peut pas t'aider ? Comment se présente cette liste ?
Marsh Posté le 01-02-2006 à 17:36:13
Oui, merci Ng
ca peut se faire comme ca.
Mais pour la liste des imprimantes je sais pas comment faire. Je pensais faire un tableau, mais ca existe les tableaux en batch?
Marsh Posté le 01-02-2006 à 18:18:08
Je suis vraiment pas doué en Batch
J'ai créé mon fichier imprimantes.txt avec dedans :
Lexmark c104
Lexmark c102
Epson c108
....
Dans mon script je fais :
Code :
|
Ca me renvoit bien Lexmark c104
alors j'aimerais bien récupérer ce résultat dans une variable mais impossible :
Code :
|
Ca fonctionne pas.
Je cherche encore
Marsh Posté le 01-02-2006 à 10:15:25
Bonjour tout le monde.
voilà, je voudrais détecter la présence d'une chaine dans une variable, mais j'ai pas trouvé de réponse pour le moment.
Est-ce que quelque chose dans le genre pourrait fonctionner :
Merci d'avance.