Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1333 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Détecter une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH] Détecter une chaine

n°1296146
the_silenc​er
Posté le 01-02-2006 à 10:15:25  profilanswer
 

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 :
 

Code :
  1. SET mavariable=latestvaleur
  2. IF %mavariable%==*test* GOTO ...


 
Merci d'avance.
 
 
 
 
 
 

mood
Publicité
Posté le 01-02-2006 à 10:15:25  profilanswer
 

n°1296168
wackevat
Posté le 01-02-2006 à 10:36:42  profilanswer
 

Si ta question était si on pouvait utiliser les * pour emplacer un ou des caractères, la réponse est non.

n°1296198
the_silenc​er
Posté le 01-02-2006 à 11:15:49  profilanswer
 

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?
 
 :)  

n°1296247
the_silenc​er
Posté le 01-02-2006 à 11:53:50  profilanswer
 

Ca serait pas plutot avec un FOR non?
Mais comment faire?
 
 :ange:

n°1296366
wackevat
Posté le 01-02-2006 à 14:17:10  profilanswer
 

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 ?

n°1296596
the_silenc​er
Posté le 01-02-2006 à 16:27:06  profilanswer
 

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.
 

n°1296606
wackevat
Posté le 01-02-2006 à 16:30:38  profilanswer
 

... et tu veux détecter les chaînes "d'identification" de salles comme C104, C108, etc. n'est-ce pas ?

n°1296639
the_silenc​er
Posté le 01-02-2006 à 16:46:38  profilanswer
 

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.
 
 :)

n°1296662
wackevat
Posté le 01-02-2006 à 17:00:35  profilanswer
 

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 ?

n°1296731
the_silenc​er
Posté le 01-02-2006 à 17:36:13  profilanswer
 

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?
 

mood
Publicité
Posté le 01-02-2006 à 17:36:13  profilanswer
 

n°1296763
the_silenc​er
Posté le 01-02-2006 à 18:18:08  profilanswer
 

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 :
  1. findstr /i c104 imprimantes.txt


Ca me renvoit bien Lexmark c104
alors j'aimerais bien récupérer ce résultat dans une variable mais impossible :

Code :
  1. findstr /i c104 imprimantes.txt > %mavar%


Ca fonctionne pas.
 
Je cherche encore  :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Détecter une chaine

 

Sujets relatifs
BATCH - Retour a la ligne précédent[Delphi 6] Détecter la taille des polices (96 ou 120DPI) ?
VERIFIER CONTENU CHAINE CARACTERE[Batch] Parcours de répertoire
[batch/VB]Invite de commande se fermeChaine entré suivant plusieurs arguements
batch pr backup copie[Batch] Trier fichier par date
[BATCH]Recuperation informations fichierSupprimer le dernier caractere d'une chaine
Plus de sujets relatifs à : [BATCH] Détecter une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR