8
votes

Séparer la variable avec un symbole en différentes parties

Utilisation du lot, je veux pouvoir séparer une variable en deux ou trois parties, quand il y a un symbole les divisant. Par exemple, si j'ai la chaîne qui ressemble à ceci: var1; var2;

Comment puis-je obtenir Var1 pour devenir variable et Var2 pour devenir un autre.

Merci d'avance


0 commentaires

3 Réponses :


11
votes

Le meilleur moyen de diviser une variable en une matrice (ou aussi près d'un tableau lorsque Windows Batch peut imiter) est de mettre la valeur de la variable dans un format pouvant être compris par un pour code> boucle . pour code> sans commutateurs divisera une ligne mot-mot, fractionnement sur les délimiteurs de type CSV (virgule, espace, tabulation ou point-virgule).

Ceci est plus approprié que pour / f code>, qui bouclent la ligne de ligne plutôt que sur Word-by-Word, et permet de scinder une chaîne d'un nombre inconnu d'éléments. P>

Voici essentiellement la division avec un pour code> boucle fonctionne. p> xxx pré>

La partie importante est la substitution de ; code> dans "", "" % var% code> et enfermer le tout dans des guillemets. En effet, il s'agit du la plus gracieuse méthode de fractionnement du path %% code> variable d'environnement par exemple. p>

Voici une démonstration plus complète, appelant un sous-programme pour diviser une variable. p> xxx pré>

Voici la sortie du script ci-dessus: p>

C:\Users\me\Desktop>test.bat
array[0] = one
array[1] = two
array[2] = three
array[3] = four
array[4] = five


0 commentaires

10
votes

jetons = 1,2 crée les deux variables de boucle %% i et %% j & divise string < / Code> en deux parties, séparées par le délimiteur ; : xxx

pour une méthode plus "dynamique" utilisez ceci: xxx < / pré>


1 commentaires

Merci d'avoir répondu, j'ai besoin de ce dont j'ai besoin maintenant, mais pour une référence future, si je veux étendre beaucoup de pièces avec beaucoup de pièces, comment puis-je faire cela sans avoir à donner à l'individuaoly de se fixer chacun à %% i alors %% j.



0
votes

Si vous n'avez que "One" apparaît, changez la ligne xxx

par xxx


0 commentaires