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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Comment faire des recherches dans un tableau sous command DOS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment faire des recherches dans un tableau sous command DOS

n°2509255
spirou38
Posté le 01-11-2025 à 12:20:29  profilanswer
 

Bonjour,
 
J'ai un problème que je n'arrive pas à résoudre dans un batch concernant l'accès à 2 tableaux que vous trouverez ci-après.
Le premier est constitué de valeurs sui doivent correspondre à une valeur entrée en argument %1 dans la commande d'exécution et le 2ème tableau donne la valeurs "traduite" pour la position trouvée ( si elle est trouvée, sinon je sortirai un message d'erreur ), cela afin d'entrer des paramètres dans le lancement d'un logiciel.
Par exemple si l'argument %1 est "NEQ" la position de la valeur trouvée est la 3ème du tableau 1 et je souhaite récupérer sa valeur "traduite" depuis le tableau 2, donc la 3ème valeur, c'est à dire ne.
Comment procéder ?
Vous allez peut-être me répondre d'enter la valeur traduite directement dans le logiciel mais cela ne me convient pas ... D'autre part, cela me permettra d'en apprendre un peu plus sur les commandes DOS.  
Il me semble qu'il faut entrer la commande SetLocal EnableDelayedExpansion avant d'utiliser les tableaux mais en cherchant sur internet je n'ai pas trouvé comment faire.
Merci de votre aide.
 
      Tableau 1
SET Oper[0]="000"
SET Oper[1]="EQU"
SET Oper[2]="NEQ"
SET Oper[3]="LSS"
SET Oper[4]="GRT"
SET Oper[5]="LEQ"
SET Oper[6]="GEQ
"
 
      Tableau 2
SET OperPerl[0]=##
SET OperPerl[1]=eq
SET OperPerl[2]=ne
SET OperPerl[3]=lt
SET OperPerl[4]=gt
SET OperPerl[5]=le
SET OperPerl[6]=ge

mood
Publicité
Posté le 01-11-2025 à 12:20:29  profilanswer
 

n°2509290
spirou38
Posté le 02-11-2025 à 20:33:58  profilanswer
 

Eh bien en galérant un peu ( et même beaucoup ) j'ai trouvé une solution, elle est dans le script ci-après.
Il y a 2 exemples de recherche / traduction : le premier trouve la dernière valeur de la table et en traduit l'équivalent pour le langage PERL, le second cherche une valeur qui n'existe pas dans la table.
 
CLS
ECHO OFF
 
SetLocal EnableDelayedExpansion
 
SET Oper1=equ
SET Oper2=neq
SET Oper3=lss
SET Oper4=gtr
SET Oper5=leq
SET Oper6=geq
 
SET OperPerl1=eq
SET OperPerl2=ne
SET OperPerl3=lt
SET OperPerl4=gt
SET OperPerl5=le
SET OperPerl6=ge
 
CLS
 
SET ManoZ=0
SET Crit=geq
SET ValRech=%Crit%
for %%Z in (1,2,3,4,5,6) do IF !Oper%%Z! EQU %Crit% SET ManoZ=%%Z
CALL :Affich
 
SET ManoZ=0
SET Crit=abc
SET ValRech=%Crit%
for %%Z in (1,2,3,4,5,6) do IF !Oper%%Z! EQU %Crit% SET ManoZ=%%Z
CALL :Affich
GOTO :EOF
 
:Affich
ECHO.
IF %ManoZ% EQU 0 ( ECHO       ######## Pas trouve #######) Else ( ECHO       ======== C'est Glop ========)
ECHO       --- Valeur recherchee --- %ValRech% ---
ECHO       --- ManoZ %ManoZ% ---
If %ManoZ% EQU 0 GOTO :NonTrouv
SET PourRech=OperPerl[!ManoZ!]
SET ValTrad=!OperPerl%ManoZ%!
ECHO       --- Correspondance %PourRech% --- Valeur traduite %Valtrad% ---
 
:NonTrouv
ECHO.
PAUSE
EXIT /B


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

  Comment faire des recherches dans un tableau sous command DOS

 

Sujets relatifs
Surlignage lignes dans un tableau dataframeTableau HTML avec effet d'ombre SANS CSS
Tableau croisé dynamique[Powershell] Passer un tableau de paramètres plutôt qu'une énumération
vérifier exitence d'un objet dans un tableau[Powershell] Commande Enter-PSSession OK, Invoke-Command NOK
Rendre cliquable chaque ligne entiere de tableauVB Script - filtre tableau
En Java, vous pouvez convertir une liste en tableau.Boucle for pour récupération tableau API [Résolu]
Plus de sujets relatifs à : Comment faire des recherches dans un tableau sous command DOS


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)