Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2163 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

n°2509698
slr56
Tout problème a sa solution.
Posté le 10-11-2025 à 13:19:42  profilanswer
 

Sinon en Powershell c'est beaucoup plus simple.
DOS c'était bien il y a 10 ou 30 ans. Il faut tourner la page.


---------------
Configurations type du moment : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
n°2509702
rat de com​bat
attention rongeur méchant!
Posté le 10-11-2025 à 14:53:19  profilanswer
 

Je vois un rapport avec Perl, du coup pourquoi pas faire ça en Perl aussi?


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°2510142
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 13-11-2025 à 17:09:57  profilanswer
 

slr56 a écrit :

Sinon en Powershell c'est beaucoup plus simple.
DOS c'était bien il y a 10 ou 30 ans. Il faut tourner la page.


Plutôt 30 que 10 en fait :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°2510563
slr56
Tout problème a sa solution.
Posté le 18-11-2025 à 14:36:07  profilanswer
 

Harkonnen a écrit :


Plutôt 30 que 10 en fait :o


 
DOS était encore très utilisé il y a 10 ans :o
 
Et les réfractaires à PS sont toujours sur DOS  :pt1cable:


---------------
Configurations type du moment : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com

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)